Relative Layout
🧱 RelativeLayout কী
RelativeLayout হলো একটি ViewGroup,
যা child view-গুলোকে অন্য view বা parent layout-এর সাপেক্ষে স্থাপন করতে দেয়।
অর্থাৎ, তুমি ঠিক বলতে পারো:
View A হবে View B এর নিচে
-
View C হবে View D এর ডান পাশে
-
View E হবে parent এর center-এ
🧩 RelativeLayout-এর মূল বৈশিষ্ট্য
-
Parent-relative positioning
-
Child view parent layout-এ কিভাবে থাকবে (center, top, bottom, left, right)
-
-
Sibling-relative positioning
-
Child view অন্য কোনো sibling view এর তুলনায় কোথায় থাকবে (নিচে, ডান পাশে, start/end ইত্যাদি)
-
-
Rendering order
যেই view আগে লেখা হয়, সেটি প্রথম render হয়।
-
অন্য view যা তার ওপর নির্ভরশীল, তারা সেই view-এর অবস্থান অনুযায়ী render হয়।
🧾 View ID ব্যবহার
RelativeLayout এ sibling reference করতে হলে view-এর ID লাগবেই।
Syntax:
android:id="@+id/view_name"
আর অন্য view সেই view কে reference করতে চাইলে:
android:layout_below="@id/view_name"
লক্ষ্য করো: এখানে + নেই, কারণ ID আগেই তৈরি হয়েছে।
🧱 RelativeLayout Attribute উদাহরণ
| Attribute | ব্যাখ্যা |
|---|---|
android:layout_alignParentTop |
parent-এর top এ align করে |
android:layout_alignParentBottom |
parent-এর bottom এ align করে |
android:layout_centerInParent |
parent-এর center-এ রাখে |
android:layout_centerHorizontal |
parent-এর horizontal center-এ রাখে |
android:layout_centerVertical |
parent-এর vertical center-এ রাখে |
android:layout_below |
অন্য view এর নিচে রাখে |
android:layout_above |
অন্য view এর উপরে রাখে |
android:layout_toRightOf |
অন্য view-এর ডান পাশে রাখে |
android:layout_toLeftOf |
অন্য view-এর বাম পাশে রাখে |
📄 একটি উদাহরণ
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"/>
<Button
android:id="@+id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:layout_below="@id/title"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Register"
android:layout_below="@id/loginButton"
android:layout_alignParentStart="true"
android:layout_marginTop="20dp"/>
</RelativeLayout>
🔍 ব্যাখ্যা
-
titleTextView parent layout-এর horizontal center-এ। -
loginButtontitleTextView-এর নিচে, horizontal center-এ। -
RegisterbuttonloginButtonএর নিচে, parent layout-এর বাম দিকে।
🧠 সংক্ষেপে মনে রাখো
| বিষয় | ব্যাখ্যা |
|---|---|
| RelativeLayout | Child views-কে parent বা sibling-এর সাপেক্ষে অবস্থান করতে দেয় |
| View ID | অন্যান্য views-কে reference করতে ব্যবহার হয় |
| +id vs id | +id → ID তৈরি, id → reference |
| Alignment attributes | alignParent*, layout_below, layout_above, layout_toRightOf ইত্যাদি |