সহজ ভাষায়, Constraint Layout হলো Relative Layout-এর একটি উন্নত সংস্করণ। এটি চাইল্ড ভিউ হায়ারার্কি কমানো এবং পারফরম্যান্স বাড়ানোর জন্য ব্যবহৃত হয়।
Constraint Layout-এর প্রপার্টিগুলো নিচে দেখানো হলো:

- Wrap Content: ডেটা অনুযায়ী ভিউ সাইজ র্যাপ করে।

- Any Size: এটি Match Parent-এর খুব অনুরূপ।

- Fixed Size: স্ট্যান্ডার্ড হাইট ও উইডথ (ফিক্সড সাইজ) অনুমতি দেয়।

উপরোক্ত উদাহরণে বাটনের সব প্রপার্টি দেখানো হয়েছে। এখন কোড লেভেলে নजर দিন:
<Button
android:layout_width="wrap_content"
android:layout_height="53dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_constraintHorizontal_bias="0.391"
app:layout_constraintStart_toStartOf="@+id/data1"
app:layout_constraintTop_toTopOf="parent" />
এখানে লেআউট মার্জিন টপ, বটম, স্টার্ট এবং এন্ড ডিক্লেয়ার করা হয়েছে। এগুলো স্ট্যান্ডার্ড ডিস্ট্যান্স (Match Parent-এর মতো)।
Constraint Layout-এ দুটি বায়াস আছে: হরিজন্টাল এবং ভার্টিক্যাল। হরিজন্টাল ও ভার্টিক্যালভাবে গ্র্যাভিটি স্পেস。
ভিউতে ক্লিক করলে সেই ভিউর সাথে কানেক্টেড সব হায়ারার্কি দেখাবে। ভিউতে ক্লিক করলে "X" কালার আইকন বাটন দিয়ে অন্য ভিউ বা প্যারেন্ট ভিউর সাথে হায়ারার্কি রিমুভ করা যায়।
উদাহরণ: Constraint Layout ব্যবহার
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
অ্যান্ড্রয়েড স্টুডিওতে File → New Project এ যান এবং প্রজেক্ট তৈরির জন্য প্রয়োজনীয় বিবরণ পূরণ করুন।
ধাপ ২: activity_main.xml-এ কোড যোগ করুন
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/layout"
android:gravity="center"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/data"
android:layout_width="wrap_content"
android:gravity="center"
android:textSize="30sp"
android:text="www.tutorialspoint.com"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/data1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="80dp"
android:layout_marginEnd="8dp"
android:gravity="center"
android:text="www.tutorialspoint.com"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:layout_width="wrap_content"
android:layout_height="53dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.43"
app:layout_constraintStart_toStartOf="@+id/data1"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
আউটপুট
অ্যাপ রান করুন। ডিফল্ট স্ক্রিন:
