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
ডকুমেন্টেশন দেখুন।
উদাহরণ
- HelloTableLayout নামে একটি নতুন প্রোজেক্ট শুরু করুন।
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আছে, যা একটি অনুভূমিক রেখা আঁকতে ব্যবহৃত হয়।- আপনার 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.mainres/layout/main.xmlলেআউট ফাইলকে বোঝায়। - অ্যাপ্লিকেশনটি চালান।
আপনি নিম্নলিখিতগুলি দেখতে পাবেন: