কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে RelativeLayout-এ ভিউগুলো প্রোগ্রামেটিক্যালি লেআউট করার পদ্ধতি

RelativeLayout-এ ডাইনামিক ভিউ যোগ এবং পজিশনিং করা

XML লেআউটের বদলে জাভা/কোটলিন কোডের মাধ্যমে রানটাইমে RelativeLayout-এ ভিউ (যেমন Button, TextView) যোগ করা এবং LayoutParams ব্যবহার করে সেটি পজিশন করা (CENTER_IN_PARENT, BELOW, ALIGN_PARENT_RIGHT ইত্যাদি) - এই টিউটোরিয়ালে এটাই দেখানো হয়েছে।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/relativelayoutID"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_centerInParent="true" />

</RelativeLayout>

ধাপ ৩: MainActivity.java - ডাইনামিক বাটন তৈরি এবং পজিশনিং

package com.app.sample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

    RelativeLayout relativeLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // RelativeLayout রেফারেন্স নিন
        relativeLayout = findViewById(R.id.relativelayoutID);

        // নতুন বাটন ডাইনামিক্যালি তৈরি করুন
        Button dynamicButton = new Button(this);
        dynamicButton.setText("ডাইনামিক বাটন");

        // LayoutParams তৈরি করুন
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT
        );

        // পজিশনিং নিয়ম যোগ করুন - পেরেন্টের কেন্দ্রে
        layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);

        // বাটনে লেআউট প্যারাম সেট করুন
        dynamicButton.setLayoutParams(layoutParams);

        // ক্লিক লিসেনার যোগ করুন
        dynamicButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "ডাইনামিক বাটনে ক্লিক করা হয়েছে", Toast.LENGTH_LONG).show();
            }
        });

        // RelativeLayout-এ বাটন যোগ করুন
        relativeLayout.addView(dynamicButton);
    }
}

RelativeLayout.LayoutParams-এর গুরুত্বপূর্ণ নিয়মগুলো

নিয়ম (Rule) বর্ণনা
CENTER_IN_PARENT পেরেন্টের উপর ও লম্বাক্ষেত্রে কেন্দ্রে
ALIGN_PARENT_TOP/BOTTOM/LEFT/RIGHT পেরেন্টের নির্দিষ্ট প্রান্তের সাথে সারি
BELOW/ABOVE/TO_LEFT_OF/TO_RIGHT_OF অন্য একটি ভিউর (ID দিয়ে) সাপেক্ষে পজিশন
CENTER_HORIZONTAL/VERTICAL শুধু আড়াল/লম্বভাবে কেন্দ্রে

উদাহরণ: অন্য ভিউর নিচে বাটন রাখা

// ধরে নিন অন্য একটি ভিউ আছে যার ID হলো R.id.otherView
layoutParams.addRule(RelativeLayout.BELOW, R.id.otherView);
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);

ধাপ ৪: ম্যানিফেস্ট ফাইল

সাধারণ ম্যানিফেস্ট কনফিগারেশন।

ফলাফল

অ্যাপ্লিকেশন চালু করলে স্ক্রিনের মধ্যে "ডাইনামিক বাটন" লেখা একটি বাটন দেখাবে। বাটনে ক্লিক করলে টোস্ট মেসেজ দেখাবে।

অ্যান্ড্রয়েডে RelativeLayout-এ ভিউগুলো প্রোগ্রামেটিক্যালি লেআউট করার পদ্ধতি

সেরা অনুশীলন (Best Practices)

  • API 17+ এ RelativeLayout.LayoutParams এর বদলে ConstraintLayout এবং ConstraintSet ব্যবহার করুন - এটি আরও পারফরম্যান্স দায়ক
  • অনেকগুলো ডাইনামিক ভিউ যোগ করলে RecyclerView বা GridView বিবেচনা করুন
  • LayoutParams রি-ইউজ করুন যদি একই ধরনের একাধিক ভিউ যোগ করতে হয়
  1. অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি BroadcastReceiver নিবন্ধন করার পদ্ধতি

  2. অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি ব্যাকগ্রাউন্ড ড্রয়েবল সেট করা

  3. অ্যান্ড্রয়েডে ScrollView প্রোগ্রাম্যাটিক্যালি ডিজেবল করার পদ্ধতি

  4. Android-এ প্রোগ্রামেটিক্যালি অ্যাপ্লিকেশন বন্ধ করা