6

सभी एंड्रॉइड विकास उपकरण महानता के साथ, विशेष रूप से संस्करण 21 के रूप में, ग्राफिकल लेआउट संपादक एक शक्तिशाली उपकरण है जिसमें प्रत्येक कॉन्फ़िगरेशन और लोकेल के लिए टुकड़ों के साथ लेआउट पर दृश्य नियंत्रण होता है । मुझे पता है कि एक विशिष्ट Activity के लेआउट एक्सएमएल में लेआउट एडिटर के लिए एम्बेडेड जानकारी के साथ स्थिर fragment टैग होंगे, उदाहरण के लिए tools:layout="@layout/book_collection_view_window_list"गैर स्थैतिक टुकड़ों के साथ लेआउट पर प्रभावी रूप से लेआउट संपादक का उपयोग करें

हालांकि, क्योंकि मैं गतिशील मेरी खिड़की में Fragments प्रतिस्थापित करने की आवश्यकता है, मैं स्थिर fragment टैगों का प्रयोग नहीं कर सकते, और बदले में इस तरह के रूप में FrameLayout कंटेनर, प्रदान करने की आवश्यकता है जो मुझे replace() में उल्लेख कर सकते हैं करने के लिए। क्या tools:layout या tools:context जैसा कुछ है, मैं इस कंटेनर पर उपयोग कर सकता हूं ताकि लेआउट एडिटर में केवल ब्लैक रिक्तता से अधिक हो, और इसलिए मैं डिज़ाइन और सत्यापन सुविधाओं का लाभ उठा सकता हूं जो मुझे देगी?

उत्तर

2

ऐसा लगता है, FrameLayout के लिए documentation के अनुसार, एक विशेषता आप FrameLayout टैग पर उपयोग कर सकते हैं ViewGroup के अग्रभाग में स्थित एक drawable डाल करने के लिए मौजूद है।

आप फ्रेमलेआउट देखने के लिए इसका उपयोग कर सकते हैं, जबकि आप अपना विचार सेट अप कर रहे हैं। मैं अक्सर एक रंग डालता हूं ताकि मैं देख सकूं कि यह पृष्ठभूमि से संबंधित है और अन्य View एस है।

+0

काफी कुछ नहीं जो मैं चाहता था, लेकिन यह एक शुरुआत है। चूंकि आप इसे पहले से इस्तेमाल कर रहे हैं, क्या आप कोड की एक पंक्ति शामिल कर सकते हैं? उपकरण में इसे दिखाने के तरीके पर कोई विचार नहीं है और जब नहीं चल रहा है (शायद एक कस्टम दृश्य बनाएं और इसे प्रोग्रामेटिक रूप से करें?)? – pjv

+0

मैं लाल रंग के लिए 'एंड्रॉइड: पृष्ठभूमि = "# एफएफ 0000" जैसे एक्सएमएल का उपयोग करूंगा। यदि आपका 'फ्रैगमेंट' अपारदर्शी है, तो आपको लाल रंग को छिपाने के लिए कुछ भी करने की ज़रूरत नहीं है, लेकिन जब आप सबकुछ निकाल लेते हैं तो मैं इसे अपने एक्सएमएल से निकाल दूंगा। वैकल्पिक रूप से, आप रनटाइम पर 'फ्रेमलेआउट' की पृष्ठभूमि सेट कर सकते हैं जब आप 'FragmentManager' का उपयोग करके 'FragmentManager' का उपयोग करके' Fragment' जोड़ते हैं जैसे कोड: 'findViewById (R.id.frame_layout) .setBackgroundColor (Color.TRANSPARENT);' – SDJMcHattie

+0

एक और समाधान 'फ्रेमलेआउट' उप वर्ग के लिए है और 'addChild()' विधियों को ओवरराइड करने जैसा कुछ करता है और 'super()' को कॉल करने से पहले पृष्ठभूमि रंग साफ़ करता है। या, यदि रचनाकार में पहचानना संभव है कि लेआउट को उपकरण द्वारा तत्काल किया गया था, तो प्रोग्राम को पृष्ठभूमि में एक यादृच्छिक रंग सेट करें। यह सब बहुत अधिक लगता है जब आप अपने एक्सएमएल को स्थापित करने के बाद रंग हटा सकते हैं। – SDJMcHattie