2012-02-27 12 views
26

मुझे विभिन्न स्क्रीन आकार उपकरणों के लिए अलग-अलग लेआउट वजन सेट करने की आवश्यकता है और मैं मानों को मंद फ़ाइल से पास करना चाहता हूं, समस्या यह है कि dimens फ़ाइल से संदर्भ त्रुटियों को फेंकता रहता हैआयामों से लेआउट_वेट संदर्भ पास करना (मंद)

error: Error: Integer types not allowed (at 'progress_widget_item3_weight' with value '9'). 

या

error: Error: Float types not allowed (at 'progress_widget_item3_weight' with value '9.1'). 

<dimen name="progress_widget_item3_weight">9</dimen> 

मैं dimens च से मूल्य कैसे पारित करना लेआउट_वेट के लिए ile? धन्यवाद

उत्तर

49

आयामों के बजाय आप integer का उपयोग पूर्णांक घोषित करने और संदर्भित करने के लिए कर सकते हैं। integers.xml में

उदाहरण घोषणा: लेआउट में

<resources> 
    <integer name="left">1</integer> 
    <integer name="right">2</integer> 
</resources> 

उदाहरण संदर्भ:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="@integer/left" /> 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="@integer/right" /> 

</LinearLayout> 
+1

ध्यान दें कि layout_weight के लिए @integer मानों का उपयोग (है जो 'स्वीकार करने के लिए float' मान निर्दिष्ट) का नेतृत्व करेंगे एलजी ऑप्टिमस एल 1/एल 3, सैमसंग गैलेक्सी वाई/नियो और ब्लैकबेरी क्यू 10 जैसे कुछ उपकरणों पर 'java.lang.NumberFormatException: अमान्य फ्लोट' त्रुटियों के लिए। – Nachi

3

मुझे नहीं लगता कि आप ऐसा कर सकते हैं। Xml फ़ाइल में प्रलेखन float (dimension) layout_width के विपरीत उदाहरण के लिए कहता है जहां आपके पास dimension है।

आप विभिन्न स्क्रीन निर्भर लेआउट में केवल हार्डकोडेड float मान का उपयोग कर सकते हैं।

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