সম্প্রতি বাস্তবায়নের চেষ্টা করছি Constraint Layout
তবে আমি খুঁজে পেয়েছি Barrier
এবং Guideline
একইরকম কাজ করছি। দুটোই ডিভাইডারের মতো কাজ করে। তাদের মধ্যে কি কোনও পার্থক্য আছে?
সম্প্রতি বাস্তবায়নের চেষ্টা করছি Constraint Layout
তবে আমি খুঁজে পেয়েছি Barrier
এবং Guideline
একইরকম কাজ করছি। দুটোই ডিভাইডারের মতো কাজ করে। তাদের মধ্যে কি কোনও পার্থক্য আছে?
উত্তর:
ধরুন আপনার TextView
গতিশীল উচ্চতা সহ দুটি উইজেট রয়েছে এবং আপনি Button
সবচেয়ে উঁচুতে নীচে রাখতে চান TextView
:
কেবলমাত্র সরাসরি বাস্তবায়ন লেআউট পথ একটি অনুভূমিক ব্যবহার করা Barrier
। এটি Barrier
আপনাকে সেই দু'জনের উচ্চতার উপর নির্ভর করে একটি সীমাবদ্ধতা নির্দিষ্ট করতে দেয় TextView
। তারপরে আপনি নিজের শীর্ষটিকে Button
অনুভূমিকের নীচে সীমাবদ্ধ রাখুন Barrier
।
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:textSize="16sp"
android:background="#AAA"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/right_text_view"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:textSize="16sp"
android:background="#DDD"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/left_text_view"
app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="left_text_view,right_text_view" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/barrier" />
</android.support.constraint.ConstraintLayout>
ধরে নিন যে আপনি উপরে উল্লিখিত TextView
উচ্চতাগুলি স্ক্রিনের উচ্চতার 30% পর্যন্ত সীমাবদ্ধ রাখতে চান , তাদের কাছে যে বিষয়বস্তুই নেই।
এটি বাস্তবায়নের জন্য আপনার Guideline
শতাংশের অবস্থানের সাথে অনুভূমিক যুক্ত হওয়া উচিত এবং এটিতে TextView
নীচে সীমাবদ্ধ করা উচিত Guideline
।
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="#AAA"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toStartOf="@+id/right_text_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:background="#DDD"
android:text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/left_text_view"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline" />
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.3" />
</android.support.constraint.ConstraintLayout>
শুধু পার্থক্য মধ্যে Barrier
এবং Guideline
যে Barrier
এর অবস্থান নমনীয় এবং সবসময় একাধিক UI উপাদান আকারের উপর ভিত্তি এটা মধ্যে অন্তর্ভুক্ত এবং Guideline
গুলি অবস্থান সবসময় সংশোধন করা হয়েছে।
app:layout_constraintBottom_toTopOf="@id/guideline"
বাধা সম্পর্কিত সরকারী ডকুমেন্টেশন :
একটি বাধা একাধিক উইজেটগুলিকে ইনপুট হিসাবে উল্লেখ করে এবং নির্দিষ্ট দিকে সর্বাধিক চরম উইজেটের উপর ভিত্তি করে একটি ভার্চুয়াল গাইডলাইন তৈরি করে। উদাহরণস্বরূপ, একটি বাম বাধা সমস্ত রেফারেন্স করা দর্শনগুলির বামে সারিবদ্ধ করবে।
প্রতিবন্ধক উপর প্রশিক্ষণ ডক্স :
গাইডলাইনের অনুরূপ, বাধা হ'ল একটি অদৃশ্য রেখা যা আপনি দর্শনকে সীমাবদ্ধ রাখতে পারেন। বাধা ব্যতীত তার নিজস্ব অবস্থান নির্ধারণ করে না; পরিবর্তে, এর মধ্যে থাকা দর্শনগুলির অবস্থানের ভিত্তিতে বাধা অবস্থানটি সরানো হয়। আপনি যখন একটি নির্দিষ্ট দৃশ্যের চেয়ে দৃশ্যের সেটগুলিতে সীমাবদ্ধ রাখতে চান তখন এটি কার্যকর is