আপেক্ষিক বিন্যাস

রচনা পদ্ধতি চেষ্টা করুন
জেটপ্যাক কম্পোজ হল Android এর জন্য প্রস্তাবিত UI টুলকিট। কম্পোজে লেআউটের সাথে কীভাবে কাজ করবেন তা শিখুন।

RelativeLayout হল একটি ভিউ গ্রুপ যা আপেক্ষিক অবস্থানে চাইল্ড ভিউ প্রদর্শন করে। প্রতিটি ভিউয়ের অবস্থান ভাইবোন উপাদানের (যেমন অন্য ভিউ-এর বাম বা নীচে) বা প্যারেন্ট RelativeLayout এলাকার (যেমন নীচে, বাম বা কেন্দ্রে সারিবদ্ধ) সম্পর্কিত অবস্থানে আপেক্ষিক হিসাবে নির্দিষ্ট করা যেতে পারে।

দ্রষ্টব্য: ভাল পারফরম্যান্স এবং টুলিং সমর্থনের জন্য, আপনার পরিবর্তে ConstraintLayout দিয়ে আপনার লেআউট তৈরি করা উচিত।

একটি RelativeLayout একটি ইউজার ইন্টারফেস ডিজাইন করার জন্য একটি খুব শক্তিশালী ইউটিলিটি কারণ এটি নেস্টেড ভিউ গ্রুপগুলিকে দূর করতে পারে এবং আপনার লেআউটের শ্রেণিবিন্যাসকে সমতল রাখতে পারে, যা কর্মক্ষমতা উন্নত করে। আপনি যদি নিজেকে বেশ কয়েকটি নেস্টেড LinearLayout গ্রুপ ব্যবহার করেন, তাহলে আপনি একটি একক RelativeLayout দিয়ে তাদের প্রতিস্থাপন করতে সক্ষম হতে পারেন।

পজিশনিং ভিউ

RelativeLayout শিশুর দৃষ্টিভঙ্গিগুলিকে পিতামাতার ভিউ বা একে অপরের (আইডি দ্বারা নির্দিষ্ট) সম্পর্কিত তাদের অবস্থান নির্দিষ্ট করতে দেয়। সুতরাং আপনি ডান সীমানা দ্বারা দুটি উপাদান সারিবদ্ধ করতে পারেন, বা একটির নীচে একটি তৈরি করতে পারেন, পর্দায় কেন্দ্রীভূত, বাম কেন্দ্রিক, ইত্যাদি। ডিফল্টরূপে, সমস্ত চাইল্ড ভিউ লেআউটের উপরের-বাম দিকে আঁকা হয়, তাই আপনাকে RelativeLayout.LayoutParams থেকে উপলব্ধ বিভিন্ন লেআউট বৈশিষ্ট্য ব্যবহার করে প্রতিটি ভিউয়ের অবস্থান নির্ধারণ করতে হবে।

RelativeLayout এ ভিউয়ের জন্য উপলব্ধ অনেক লেআউট বৈশিষ্ট্যগুলির মধ্যে কয়েকটি অন্তর্ভুক্ত:

android:layout_alignParentTop
যদি "true" , তাহলে এই ভিউয়ের উপরের প্রান্তটি অভিভাবকের উপরের প্রান্তের সাথে মিলে যায়৷
android:layout_centerVertical
যদি "true" , তাহলে এই শিশুটিকে তার পিতামাতার মধ্যে উল্লম্বভাবে কেন্দ্র করে।
android:layout_below
রিসোর্স আইডি দিয়ে নির্দিষ্ট করা ভিউয়ের নিচে এই ভিউয়ের উপরের প্রান্তে অবস্থান করে।
android:layout_toRightOf
এই ভিউয়ের বাম প্রান্তটিকে একটি রিসোর্স আইডি দিয়ে নির্দিষ্ট করা ভিউয়ের ডানদিকে অবস্থান করে।

এগুলো মাত্র কয়েকটি উদাহরণ। সমস্ত লেআউট বৈশিষ্ট্য RelativeLayout.LayoutParams এ নথিভুক্ত করা হয়েছে।

প্রতিটি লেআউট প্রপার্টির মান হয় প্যারেন্ট RelativeLayout এর সাপেক্ষে একটি লেআউট অবস্থান সক্ষম করার জন্য একটি বুলিয়ান বা একটি ID যা লেআউটে অন্য একটি ভিউ উল্লেখ করে যার বিপরীতে ভিউটি স্থাপন করা উচিত।

আপনার XML লেআউটে, লেআউটের অন্যান্য দৃষ্টিভঙ্গির বিরুদ্ধে নির্ভরতা যেকোনো ক্রমে ঘোষণা করা যেতে পারে। উদাহরণ স্বরূপ, আপনি ঘোষণা করতে পারেন যে "view1" কে "view2" এর নিচে অবস্থান করা হবে এমনকি যদি "view2" ক্রমানুসারে ঘোষিত শেষ দৃশ্য হয়। নীচের উদাহরণটি এমন একটি দৃশ্য দেখায়।

উদাহরণ

প্রতিটি দর্শনের আপেক্ষিক অবস্থান নিয়ন্ত্রণ করে এমন প্রতিটি বৈশিষ্ট্যের উপর জোর দেওয়া হয়।

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp" >
    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/reminder" />
    <Spinner
        android:id="@+id/dates"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/times" />
    <Spinner
        android:id="@id/times"
        android:layout_width="96dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_alignParentRight="true" />
    <Button
        android:layout_width="96dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/times"
        android:layout_alignParentRight="true"
        android:text="@string/done" />
</RelativeLayout>

একটি RelativeLayout এর প্রতিটি চাইল্ড ভিউতে উপলব্ধ সমস্ত লেআউট বৈশিষ্ট্য সম্পর্কে বিস্তারিত জানার জন্য, RelativeLayout.LayoutParams দেখুন।