Android: محاولة فهم Android: layout_weight
-
26-09-2019 - |
سؤال
أحاول تقسيم الصفحة في ثلاثة أجزاء. أرغب في القيام بذلك في قيم النسبة المئوية ، ولكن هذا لا يدعمه Android. بدلا من ذلك لا بد لي من استخدام android:layout_weight
. لكن لدي صعوبة في فهمها والحصول عليها بشكل صحيح. خاصة كيف يتم حساب الحجم الفعلي. هل هناك طريقة للحصول على قيمة مئوية (0..100 ٪) android:layout_weight
?
مررت ببعض الحالات (انظر لقطة الشاشة المرفقة) لوصف المشاكل. الحقول الملونة كلها <LinearLayout>
مع android:layout_height="fill_parent"
, ، لأنني أريد أن يتم تقسيم الشاشة الكاملة بين هؤلاء.
حالة 1
حسنًا ، بسيط. كل <LinearLayout>
يحصل على 33 ٪.
الحالة 2
يو بي إس؟! الأول (الأصفر) <LinearLayout>
يختفي تماما؟ لماذا ا؟
الحالة 3
مرتبك مرة أخرى. الأصفر <LinearLayout>
عاد. ومع ذلك ، الاثنين الأول <LinearLayout>
مع الوزن الثقيل تصبح أصغر؟ ما الذي يجري؟
الحالة 4
ليس لدي أي فكرة على الإطلاق عن الرياضيات وراء كل هذا.
المحلول
هل هناك طريقة للحصول على قيمة مئوية (0..100 ٪) من Android: layout_weight؟
بالتأكيد. اجعلهم يضيفون ما يصل إلى 100.
من أجل "قيمة النسبة المئوية" ، تريد android:layout_height
من العناصر الفردية داخل LinearLayout
أن تكون 0px
.
نصائح أخرى
عند استخدام Android: layout_height = "fill_parent" للبارات ، فأنت لا تترك أي مساحة متوفرة. (نظرًا لأنهم يقومون بملء الوالد.) نظرًا لأن جميع الثلاثة تم تعيينهم على ملء ، فإن الارتفاع المطلوب هو في الواقع 3x ارتفاع الأصل ، وبالتالي يتم تطبيق الأوزان على مساحة سلبية متبقية. هذا ما يفسر السلوك الغريب الذي تراه ، ولماذا ضبط Layout_height على 0px يحله.