मैं कम से कम बॉयलरप्लेट कोड के साथ पुन: उपयोग या "उपनाम" लेआउट का आकलन करना चाहता हूं।लेआउट उपनाम के बारे में गलत एंड्रॉइड दस्तावेज़?
ऐसा लगता है कि Android documentation about layout aliases गलत है, और निश्चित रूप से असंगत प्रतीत होता है।
<resources>
<item name="main" type="layout">@layout/main_twopanes</item>
</resources>
यदि मैं यह संकलन करने की कोशिश, मैं एक Attribute is missing the Android namespace prefix
त्रुटि मिलती है: प्रलेखन के इस खंड के लिए एक उदाहरण के रूप में निम्नलिखित लेआउट फ़ाइल को दर्शाता है। यहां तक कि resources
तत्व को नाम स्थान को जोड़ने के बाद, मैं error: Error: String types not allowed (at 'type' with value 'layout').
Elsewhere in the Android documentation, वे उर्फ लेआउट के लिए एक अलग और उचित रूप में, उल्टा और गलत रास्ता दिखा:
एक मौजूदा लेआउट के लिए एक उपनाम बनाने के लिए, का उपयोग करें तत्व,
<merge>
में लपेटा गया। उदाहरण के लिए:<?xml version="1.0" encoding="utf-8"?> <merge> <include layout="@layout/main_ltr"/> </merge>
इस LogCat E/AndroidRuntime(1558): android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true
में निम्न त्रुटि में परिणाम चल रहा है। तो यह त्रुटि इस तथ्य को मजबूत करने के लिए प्रतीत होती है कि यह <include>
<merge>
जोड़ी एक गलती होनी चाहिए, क्योंकि इसे एक अनावश्यक माता-पिता View
की आवश्यकता होती है।
अंततः <merge>
documentation है, जो कि पूर्व दिशा के विपरीत लगता है, जो शीर्ष स्तर <merge><include/></merge>
के उलटा रूप का कोई उल्लेख नहीं करता है।
इस तरह के एक निरर्थक दृश्य समूह सहित बचने के लिए, आप के बजाय तत्व का उपयोग कर सकते फिर से प्रयोग करने योग्य लेआउट के लिए रूट दृश्य के रूप में। उदाहरण के लिए:
<merge xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/add"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/delete"/> </merge>
[पहली विधि] (http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAlias फ़िल्टर) मेरे लिए संकलित और ठीक काम करने लगता है। क्या आपके पास नवीनतम एसडीके उपकरण स्थापित हैं? – Joe
@ जो इसे सत्यापित करने के लिए धन्यवाद! यह समाप्त होता है मैंने निर्देशों को ध्यान से नहीं पढ़ा। मैंने ऐसा किया जो मैंने सोचा था कि मुझे करना चाहिए - लेआउट.एक्सएमएल को 'मूल्य-बड़े' फ़ोल्डर के बजाय 'लेआउट-बड़े' के अंदर रखें। –