সারণী

TableLayout হল একটি ViewGroup যা সারি ও কলামে চাইল্ড View এলিমেন্ট দেখায়।

মনে রাখবেন: আরও ভালো পারফর্ম্যান্স ও টুলিং সংক্রান্ত সহায়তার জন্য, আপনাকে ConstraintLayout-এর সাহায্যে লেআউট তৈরি করতে হবে।

TableLayout এর চাইল্ড এলিমেন্টগুলিকে সারি এবং কলামে সাজায়। TableLayout কন্টেনার তার সারি, কলাম বা সেলের জন্য বর্ডার লাইন দেখায় না। টেবিলে ততগুলি কলাম থাকবে যতগুলি সবচেয়ে বেশি সেল থাকা সারিতে আছে। টেবিলের সেল খালি থাকতে পারে। HTML-এর মতো, সেল একাধিক কলাম জুড়ে থাকতে পারে। TableRow.LayoutParams ক্লাসে span ফিল্ড ব্যবহার করে আপনি কলাম স্প্যান করতে পারবেন।

মনে রাখবেন: সেল একাধিক সারি জুড়ে থাকতে পারে না।

TableRow অবজেক্ট হল TableLayout-এর চাইল্ড ভিউ (প্রতিটি TableRow টেবিলে একটি করে সারি নির্ধারণ করে)। প্রতিটি সারিতে শূন্য বা তার বেশি সেল থাকে, যার প্রতিটি অন্য যেকোনও ধরনের ভিউ দ্বারা সংজ্ঞায়িত করা হয়। তাই, একটি সারির সেল ImageView বা TextView অবজেক্টের মতো বিভিন্ন ধরনের View অবজেক্ট দিয়ে তৈরি হতে পারে। এছাড়াও, একটি সেল ViewGroup অবজেক্ট হতে পারে (যেমন, আপনি সেল হিসেবে অন্য TableLayout নেস্ট করতে পারেন)।

নিচের স্যাম্পেল লেআউটে দুটি সারি এবং প্রতিটিতে দুটি করে সেল আছে। এর সাথে দেওয়া স্ক্রিনশটে ফলাফল দেখানো হয়েছে, যেখানে সেলের বর্ডার ডটেড লাইন হিসেবে দেখা যাচ্ছে (ভিজ্যুয়াল এফেক্টের জন্য যোগ করা হয়েছে)।

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1">
    <TableRow>
        <TextView
            android:text="@string/table_layout_4_open"
            android:padding="3dip" />
        <TextView
            android:text="@string/table_layout_4_open_shortcut"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView
            android:text="@string/table_layout_4_save"
            android:padding="3dip" />
        <TextView
            android:text="@string/table_layout_4_save_shortcut"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>
</TableLayout>

কলাম লুকানো, স্ক্রিনের উপলভ্য জায়গা পূরণ করার জন্য বড় করা, অথবা টেবিলটি স্ক্রিনে ফিট না হওয়া পর্যন্ত কলামটি ছোট করার জন্য চিহ্নিত করা যেতে পারে। আরও তথ্যের জন্য TableLayout reference ডকুমেন্টেশন দেখুন।

উদাহরণ

  1. HelloTableLayout নামে একটি নতুন প্রোজেক্ট শুরু করুন।
  2. res/layout/main.xml ফাইলটি খুলুন এবং নিম্নলিখিতগুলি যোগ করুন:
    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:stretchColumns="1">
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Open..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-O"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Save..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-S"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Save As..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-Shift-S"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    
        <TableRow>
            <TextView
                android:text="X"
                android:padding="3dip" />
            <TextView
                android:text="Import..."
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:text="X"
                android:padding="3dip" />
            <TextView
                android:text="Export..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-E"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Quit"
                android:padding="3dip" />
        </TableRow>
    </TableLayout>

    লক্ষ্য করুন, এটি কীভাবে HTML টেবিলের কাঠামোর সাথে মিলে যায়। TableLayout এলিমেন্টটি HTML <table> এলিমেন্টের মতো; TableRow হল ><tr>> এলিমেন্টের মতো; তবে সেলের জন্য আপনি যেকোনও ধরনের View এলিমেন্ট ব্যবহার করতে পারবেন। এই উদাহরণে, প্রতিটি সেলের জন্য একটি TextView ব্যবহার করা হয়েছে। কিছু সারির মধ্যে, একটি বেসিক View আছে, যা একটি অনুভূমিক রেখা আঁকতে ব্যবহৃত হয়।

  3. আপনার HelloTableLayout অ্যাক্টিভিটি এই লেআউটটি onCreate() পদ্ধতিতে লোড করছে কিনা তা নিশ্চিত করুন:

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.main)
    }

    জাভা

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    setContentView(int) পদ্ধতি Activity-এর জন্য লেআউট ফাইল লোড করে, যা রিসোর্স আইডি দ্বারা নির্দিষ্ট করা হয় — R.layout.main res/layout/main.xml লেআউট ফাইলকে বোঝায়।

  4. অ্যাপ্লিকেশনটি চালান।

আপনি নিম্নলিখিতগুলি দেখতে পাবেন: