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
أو معرّف يشير
إلى ملف شخصي آخر في التنسيق الذي يجب وضع العرض عليه.
في تنسيق 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
.