2010-09-02 16 views
19

मैं एक पेज को तीन हिस्सों में विभाजित करने की कोशिश कर रहा हूं। मैं इसे प्रतिशत मानों में करना चाहता हूं, हालांकि यह एंड्रॉइड द्वारा समर्थित नहीं है। इसके बजाय मुझे android:layout_weight का उपयोग करना होगा। लेकिन मुझे इसे समझने और इसे सही करने में कठिन समय है। विशेष रूप से वास्तविक आकार की गणना कैसे की जाती है। क्या android:layout_weight से प्रतिशत मान (0..100%) प्राप्त करने का कोई तरीका है?एंड्रॉइड: एंड्रॉइड को समझने की कोशिश कर रहा है: लेआउट_वेट

मैं समस्याओं का वर्णन करने के लिए कुछ मामलों (संलग्न स्क्रीनशॉट देखें) से गुजर गया। android:layout_height="fill_parent" के साथ रंगीन फ़ील्ड सभी <LinearLayout> हैं, क्योंकि मैं उन लोगों के बीच पूर्ण स्क्रीन को विभाजित करना चाहता हूं।

प्रकरण 1

alt text

ठीक है, सरल। प्रत्येक <LinearLayout> 33% हो जाता है।

प्रकरण 2

alt text

अप ?! पहला (पीला) <LinearLayout> पूरी तरह से गायब हो जाता है? क्यूं कर?

प्रकरण 3

alt text

फिर से उलझन में। पीला <LinearLayout> वापस आ गया है। हालांकि, भारी वजन के साथ दो पहले <LinearLayout> छोटे हो जाते हैं? क्या हो रहा है?

प्रकरण 4

alt text

मैं बिल्कुल पता नहीं क्या यह सब के पीछे गणित है।

उत्तर

25

क्या एंड्रॉइड से प्रतिशत मूल्य (0..100%) प्राप्त करने का कोई तरीका है: layout_weight?

निश्चित रूप से। उन्हें 100 तक जोड़ें।

अपने "प्रतिशत मान" के लिए, के भीतर के भीतर व्यक्तिगत आइटमों के android:layout_height चाहते हैं।

+8

मार्क, आपने मेरा दिन बनाया। आप विश्वास नहीं कर सकते कि अजीब मामलों को समझने की कोशिश करने में मैंने कितना समय बिताया है। और एक सरल 'एंड्रॉइड: layout_height = "0px" 'सबकुछ हल करता है :-) – znq

+1

लेआउट_विड्थ को" fill_parent "पर सेट करना और लेआउट_वेट को" 0.2 "," 0.75 "जैसे फ्लोट वैल्यू पर भी काम करता है, इस मामले में जितना छोटा होगा उतना छोटा होगा तत्व ले जाएगा अंतरिक्ष का हिस्सा। क्या आप कृपया यह बता सकते हैं कि यह करने का स्वीकार्य तरीका है या नहीं? – Yar

8

जब आप एंड्रॉइड का उपयोग करते हैं: सलाखों के लिए layout_height = "fill_parent", आप कोई भी उपलब्ध स्थान नहीं छोड़ रहे हैं। (चूंकि वे माता-पिता को भर रहे हैं।) क्योंकि सभी 3 भरने के लिए सेट हैं, अनुरोधित ऊंचाई वास्तव में 3x माता-पिता की ऊंचाई है, इसलिए वजन को शेष शेष स्थान पर लागू किया जा रहा है। यह आपके द्वारा देखे जाने वाले अजीब व्यवहार को बताता है, और लेआउट_हेइट को 0px पर सेट करने से यह हल हो जाता है।

+0

लिंक मर चुका है। क्या आपका ब्लॉग पोस्ट कहीं और उपलब्ध है? –

संबंधित मुद्दे