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);
ধাপ ৪: ম্যানিফেস্ট ফাইল
সাধারণ ম্যানিফেস্ট কনফিগারেশন।
ফলাফল
অ্যাপ্লিকেশন চালু করলে স্ক্রিনের মধ্যে "ডাইনামিক বাটন" লেখা একটি বাটন দেখাবে। বাটনে ক্লিক করলে টোস্ট মেসেজ দেখাবে।
সেরা অনুশীলন (Best Practices)
- API 17+ এ
RelativeLayout.LayoutParamsএর বদলেConstraintLayoutএবংConstraintSetব্যবহার করুন - এটি আরও পারফরম্যান্স দায়ক - অনেকগুলো ডাইনামিক ভিউ যোগ করলে RecyclerView বা GridView বিবেচনা করুন
- LayoutParams রি-ইউজ করুন যদি একই ধরনের একাধিক ভিউ যোগ করতে হয়