Header Ads

Header ADS

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 কলাম লুকানো


Powered by Blogger.