سؤال

أحاول تقسيم الصفحة في ثلاثة أجزاء. أرغب في القيام بذلك في قيم النسبة المئوية ، ولكن هذا لا يدعمه Android. بدلا من ذلك لا بد لي من استخدام android:layout_weight. لكن لدي صعوبة في فهمها والحصول عليها بشكل صحيح. خاصة كيف يتم حساب الحجم الفعلي. هل هناك طريقة للحصول على قيمة مئوية (0..100 ٪) android:layout_weight?

مررت ببعض الحالات (انظر لقطة الشاشة المرفقة) لوصف المشاكل. الحقول الملونة كلها <LinearLayout> مع android:layout_height="fill_parent", ، لأنني أريد أن يتم تقسيم الشاشة الكاملة بين هؤلاء.

حالة 1

alt text

حسنًا ، بسيط. كل <LinearLayout> يحصل على 33 ٪.

الحالة 2

alt text

يو بي إس؟! الأول (الأصفر) <LinearLayout> يختفي تماما؟ لماذا ا؟

الحالة 3

alt text

مرتبك مرة أخرى. الأصفر <LinearLayout> عاد. ومع ذلك ، الاثنين الأول <LinearLayout> مع الوزن الثقيل تصبح أصغر؟ ما الذي يجري؟

الحالة 4

alt text

ليس لدي أي فكرة على الإطلاق عن الرياضيات وراء كل هذا.

هل كانت مفيدة؟

المحلول

هل هناك طريقة للحصول على قيمة مئوية (0..100 ٪) من Android: layout_weight؟

بالتأكيد. اجعلهم يضيفون ما يصل إلى 100.

من أجل "قيمة النسبة المئوية" ، تريد android:layout_height من العناصر الفردية داخل LinearLayout أن تكون 0px.

نصائح أخرى

عند استخدام Android: layout_height = "fill_parent" للبارات ، فأنت لا تترك أي مساحة متوفرة. (نظرًا لأنهم يقومون بملء الوالد.) نظرًا لأن جميع الثلاثة تم تعيينهم على ملء ، فإن الارتفاع المطلوب هو في الواقع 3x ارتفاع الأصل ، وبالتالي يتم تطبيق الأوزان على مساحة سلبية متبقية. هذا ما يفسر السلوك الغريب الذي تراه ، ولماذا ضبط Layout_height على 0px يحله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top