Table Layout
TableLayout কী
TableLayout হলো একধরনের ViewGroup,
যা এর child View গুলোকে সারি (row) এবং কলাম (column) আকারে সাজিয়ে রাখে।
তুমি যেভাবে একটা টেবিল তৈরি করো —
যেখানে অনেকগুলো সারি (rows) ও প্রতিটি সারিতে একাধিক ঘর (cells) থাকে,
ঠিক তেমনি TableLayout কাজ করে।
🧩 TableLayout-এর গঠন
| কম্পোনেন্ট | ভূমিকা |
|---|---|
| TableLayout | মূল parent layout (পুরো টেবিলের কাঠামো) |
| TableRow | প্রতিটি row কে define করে |
| Child Views (যেমন TextView, Button) | প্রতিটি cell বা ঘর তৈরি করে |
🧾 একটি উদাহরণ
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow>
<TextView
android:text="Name"
android:padding="8dp" />
<TextView
android:text="Age"
android:padding="8dp" />
</TableRow>
<TableRow>
<TextView
android:text="Alice"
android:padding="8dp" />
<TextView
android:text="22"
android:padding="8dp" />
</TableRow>
<TableRow>
<TextView
android:text="Bob"
android:padding="8dp" />
<TextView
android:text="25"
android:padding="8dp" />
</TableRow>
</TableLayout>
🔍 ব্যাখ্যা:
-
TableLayout→ পুরো টেবিলের স্ট্রাকচার -
প্রতিটি
TableRow→ একটি সারি -
প্রতিটি
TextView→ টেবিলের একটি ঘর (cell)
🧠 TableLayout-এর গুরুত্বপূর্ণ Attribute গুলো
| Attribute | কাজ |
|---|---|
android:stretchColumns |
নির্দিষ্ট কলামকে বড় করে বাকি জায়গা পূরণ করে |
android:shrinkColumns |
নির্দিষ্ট কলামকে ছোট করে যাতে স্ক্রিনে ফিট হয় |
android:collapseColumns |
নির্দিষ্ট কলামকে লুকিয়ে ফেলে |
android:layout_column |
কোনো ভিউ কোন কলামে যাবে সেটা নির্ধারণ করে |
android:layout_span |
কোনো ভিউ কতগুলো কলাম জুড়ে থাকবে সেটা বলে |
🎯 stretch, shrink, collapse — তিনটি ধারণা
🟢 stretchColumns
যদি কোনো কলামকে স্ক্রিনের ফাঁকা জায়গা দিয়ে বড় করতে চাও।
android:stretchColumns="1"
👉 দ্বিতীয় কলাম (index 1) stretch হবে।
🟡 shrinkColumns
যদি টেবিল স্ক্রিনের চেয়ে বড় হয়, তাহলে shrinkColumns নির্দিষ্ট কলামগুলোকে ছোট করে ফিট করায়।
android:shrinkColumns="0"
👉 প্রথম কলাম ছোট হবে যাতে টেবিল ফিট হয়।
🔴 collapseColumns
যদি কোনো কলামকে সম্পূর্ণ লুকিয়ে রাখতে চাও।
android:collapseColumns="2"
👉 তৃতীয় কলাম (index 2) সম্পূর্ণভাবে অদৃশ্য হয়ে যাবে।
🧮 উদাহরণ: Column span (একাধিক কলাম জুড়ে একটি cell)
<TableRow>
<TextView
android:text="Student Information"
android:layout_span="2"
android:gravity="center"
android:padding="8dp"/>
</TableRow>
👉 এখানে TextView দুইটা কলাম জুড়ে আছে।
🧭 TableLayout এর বৈশিষ্ট্য
| বৈশিষ্ট্য | ব্যাখ্যা |
|---|---|
Child হিসেবে শুধু TableRow নেয় |
অন্য কোনো layout দিলে কাজ করবে না |
প্রতিটি TableRow তে একাধিক view থাকতে পারে |
প্রতিটি view টেবিলের cell হিসেবে কাজ করে |
| Column সংখ্যা নির্ধারণ হয় প্রথম row এর view সংখ্যা অনুযায়ী | প্রথম সারিতে কয়টা view আছে, ততগুলো কলাম তৈরি হয় |
| Columns stretch/shrink/collapse করা যায় | ফ্লেক্সিবল লেআউটের জন্য |
🧠 সংক্ষেপে মনে রাখো
| টার্ম | মানে |
|---|---|
| TableLayout | টেবিলের মূল কাঠামো |
| TableRow | প্রতিটি সারি |
| Cell | প্রতিটি view যা row এর মধ্যে থাকে |
| stretchColumns | কলামকে বড় করে ফাঁকা জায়গা পূরণ করা |
| shrinkColumns | কলামকে ছোট করে ফিট করানো |
| collapseColumns | কলাম লুকানো |