LinearLayout هي مجموعة طرق عرض تُرتِّب جميع العناصر الثانوية في اتجاه واحد، عموديًا أو أفقيًا. يمكنك تحديد اتجاه التنسيق باستخدام السمة
android:orientation.
LinearLayout مع ثلاثة عناصر ثانوية مُرتَّبة أفقيًا
يتم ترتيب جميع العناصر الثانوية في LinearLayout واحدًا تلو الآخر، لذا لا تحتوي القائمة العمودية إلا على عنصر ثانوي واحد لكل صف، بغض النظر عن عرضها. لا يزيد ارتفاع القائمة الأفقية عن صف واحد، ويساوي ارتفاع أطول عنصر ثانوي، بالإضافة إلى مساحة الحشو. تراعي LinearLayout _الهوامش_ بين
العناصر الثانوية و _الجاذبية_، أي المحاذاة إلى اليمين أو الوسط أو اليسار
لكل عنصر ثانوي.
وزن التنسيق
LinearLayout أيضًا تعيين وزن للعناصر الثانوية الفردية باستخدام السمة
android:layout_weight. تُعيِّن هذه السمة قيمة "أهمية" لعرض من حيث المساحة التي يشغلها على الشاشة. تسمح قيمة الوزن الأكبر بتوسيع العرض لملء المساحة المتبقية في العرض الرئيسي. يمكن أن تحدّد العروض الثانوية قيمة وزن، ويتم تخصيص أي مساحة متبقية في مجموعة طرق العرض للعناصر الثانوية بشكل متناسب، استنادًا إلى الوزن المُعلن عنه. الوزن التلقائي هو صفر.
التوزيع المتساوي
لإنشاء تنسيق خطي يستخدم فيه كل عنصر ثانوي المقدار نفسه من المساحة
على الشاشة، اضبط
android:layout_height
لكل عرض على "0dp" لتنسيق عمودي، أو الـ
android:layout_width
لكل عرض على "0dp" لتنسيق أفقي. بعد ذلك، اضبط android:layout_weight لكل عرض على "1".
التوزيع غير المتساوي
يمكنك أيضًا إنشاء تنسيقات خطية تستخدم فيها العناصر الثانوية مقادير مختلفة من المساحة على الشاشة. إليك بعض الأمثلة:
- لنفترض أنّ لديك ثلاثة حقول نصية: اثنان بقيمة وزن 1، والثالث بقيمة الوزن التلقائية 0. لا يشغل الحقل النصي الثالث، الذي تبلغ قيمة وزنه 0، سوى المساحة التي يتطلبها محتواه. يتوسّع الحقلان النصيان الآخران، اللذان تبلغ قيمة وزنهما 1، بالتساوي لملء المساحة المتبقية بعد قياس محتويات الحقول الثلاثة.
- إذا كان لديك بدلاً من ذلك ثلاثة حقول نصية، اثنان بقيمة وزن 1 والثالث بقيمة وزن 2، فسيتم تخصيص المساحة المتبقية بعد قياس محتويات الحقول الثلاثة على النحو التالي: نصفها للحقل الذي تبلغ قيمة وزنه 2، والنصف الآخر مقسّم بالتساوي بين الحقلَين اللذين تبلغ قيمة وزنهما 1.
يوضّح الشكل ومقتطف الرمز البرمجي التاليان كيفية عمل أوزان التنسيق في نشاط "إرسال رسالة". لا يشغل كل من حقل إلى وسطر الموضوع وزر الإرسال سوى الارتفاع الذي يحتاجون إليه. تشغل مساحة الرسالة بقية ارتفاع النشاط.
LinearLayout مُرتَّب عموديًا
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/to" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/subject" /> <EditText android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="top" android:hint="@string/message" /> <Button android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="end" android:text="@string/send" /> </LinearLayout>
للاطّلاع على تفاصيل السمات المتاحة لكل عرض ملف الطفل في
LinearLayout، يُرجى مراجعة
LinearLayout.LayoutParams.