Android Layouts হল এমন একটি কাঠামো যা দ্বারা অ্যাপ্লিকেশনের UI (User Interface) উপাদানগুলি স্ক্রিনে সাজানো হয়। একটি অ্যাপ্লিকেশনের ভিতরে কতগুলো UI উপাদান থাকবে, সেগুলোর আকার ও পজিশন কেমন হবে, এবং সেগুলো কীভাবে ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করবে তা Layouts দ্বারা নির্ধারণ করা হয়। Android বিভিন্ন ধরনের Layout প্রদান করে, যার মাধ্যমে জটিল এবং প্রয়োজনমতো UI তৈরি করা সম্ভব।
নিচে Android এর প্রধান Layout সমূহ এবং সেগুলোর বৈশিষ্ট্য নিয়ে আলোচনা করা হলো:
১. LinearLayout
LinearLayout হল এমন একটি লেআউট, যা UI উপাদানগুলোকে একটির পরে একটি সরলরেখায় সাজায়। এই লেআউটটি দুটি ভিন্ন ধরনের হতে পারে:
- Vertical: উপাদানগুলো উপরে থেকে নিচের দিকে সাজানো হয়।
- Horizontal: উপাদানগুলো বাম থেকে ডানের দিকে সাজানো হয়।
বৈশিষ্ট্য:
- orientation: এই অ্যাট্রিবিউট দ্বারা নির্ধারণ করা হয়, উপাদানগুলো একের পর এক vertical (উল্লম্ব) অথবা horizontal (অনুভূমিক) হবে।
- UI উপাদানগুলো একে অপরের উপরে বা পাশে সাজানো হয়।
উদাহরণ:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, World!" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me" />
</LinearLayout>
২. RelativeLayout
RelativeLayout হল এমন একটি লেআউট, যেখানে UI উপাদানগুলো একে অপরের সাথে বা প্যারেন্ট লেআউটের সাথে সম্পর্কিত হয়ে সাজানো হয়। এটি জটিল UI ডিজাইন করতে সহায়ক।
বৈশিষ্ট্য:
- UI উপাদানগুলোকে অন্য উপাদানগুলোর উপর নির্ভর করে সাজানো হয়।
- layout_alignParent এবং layout_below এর মত অ্যাট্রিবিউট ব্যবহার করে UI উপাদানের অবস্থান নির্ধারণ করা যায়।
উদাহরণ:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, World!"
android:layout_alignParentTop="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
android:layout_below="@id/textView"
android:layout_marginTop="10dp" />
</RelativeLayout>
৩. ConstraintLayout
ConstraintLayout হল সবচেয়ে শক্তিশালী এবং জনপ্রিয় লেআউটগুলির একটি, যা Android এর জন্য জটিল UI ডিজাইন করতে ব্যবহৃত হয়। এখানে UI উপাদানগুলো একে অপরের সাথে এবং প্যারেন্ট লেআউটের সাথে constraints বা সীমা ব্যবহার করে সাজানো হয়।
বৈশিষ্ট্য:
- Flexible positioning: উপাদানগুলোকে স্ক্রিনের যেকোনো স্থানে নির্ভুলভাবে স্থাপন করা যায়।
- এটি জটিল এবং responsive UI তৈরি করার জন্য উপযুক্ত।
- প্রায় সব ধরনের UI ডিজাইন সহজে করা যায়।
উদাহরণ:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, World!"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
৪. FrameLayout
FrameLayout মূলত একক UI উপাদান প্রদর্শনের জন্য ব্যবহৃত হয়। যদি একাধিক UI উপাদান যোগ করা হয়, তবে তারা একে অপরের উপরে স্তূপিত হবে। এটি সাধারণত UI এলিমেন্টগুলি একের উপর একটি বসানোর জন্য ব্যবহৃত হয়।
বৈশিষ্ট্য:
- এটি সাধারণত একক ভিউ বা উপাদান প্রদর্শনের জন্য ব্যবহৃত হয়।
- একাধিক উপাদান থাকলে তারা একে অপরের উপরে বসানো হয়।
উদাহরণ:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="200dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/sample_image" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Overlay Text"
android:layout_gravity="center" />
</FrameLayout>
৫. TableLayout
TableLayout টেবিলের মতো সারি এবং কলামে UI উপাদানগুলোকে সাজানোর জন্য ব্যবহৃত হয়। প্রতিটি সারি একটি TableRow এর মধ্যে থাকে এবং প্রতি সারিতে এক বা একাধিক UI উপাদান থাকতে পারে।
বৈশিষ্ট্য:
- এটি টেবিলের মতো কক্ষ এবং সারিতে উপাদান সাজানোর জন্য উপযুক্ত।
- UI উপাদানগুলো সারি এবং কলামে সঠিকভাবে স্থাপন করা যায়।
উদাহরণ:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:text="Row 1, Col 1" />
<TextView
android:text="Row 1, Col 2" />
</TableRow>
<TableRow>
<TextView
android:text="Row 2, Col 1" />
<TextView
android:text="Row 2, Col 2" />
</TableRow>
</TableLayout>
৬. GridLayout
GridLayout একটি গ্রিড আকারে UI উপাদানগুলোকে সাজাতে ব্যবহৃত হয়। এটি rows এবং columns এ ভিউ উপাদানগুলোকে স্থাপন করে।
বৈশিষ্ট্য:
- এটি সারি এবং কলামে উপাদান সাজানোর জন্য ব্যবহৃত হয়।
- এটি জটিল গ্রিডভিত্তিক UI ডিজাইন করতে সাহায্য করে।
উদাহরণ:
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="2"
android:columnCount="2">
<TextView
android:text="Cell 1" />
<TextView
android:text="Cell 2" />
<TextView
android:text="Cell 3" />
<TextView
android:text="Cell 4" />
</GridLayout>
উপসংহার
Android Layouts এর বিভিন্ন প্রকার রয়েছে, যেগুলো বিভিন্ন প্রয়োজন অনুযায়ী UI উপাদানগুলো সাজাতে সহায়ক। LinearLayout, RelativeLayout, এবং ConstraintLayout সবচেয়ে সাধারণভাবে ব্যবহৃত Layout, তবে FrameLayout, TableLayout, এবং GridLayout নির্দিষ্ট পরিস্থিতিতে প্রয়োজনীয় হতে পারে। সঠিক Layout বেছে নিয়ে আপনি একটি সুসংগঠিত এবং ব্যবহারবান্ধব Android UI ডিজাইন করতে পারবেন।
Read more