दिलचस्प पोस्ट
प्लस (+) या% 20 के लिए स्थान को सांकेतिक शब्दों में बदलना कब? क्या हम हमेशा स्विफ्ट में बंद होने के दौरान का इस्तेमाल करते हैं रिटर्न-पथ के बीच व्यवहार अंतर क्या है, उत्तर-और से? जीआईटी ऑटोक्रॉल्फ सेटिंग्स के लिए निश्चित सिफारिश क्या जावास्क्रिप्ट में गतिशील स्कॉपिंग को हासिल करने के लिए संभव है? बच्चे एनजी-दोहर से माता-पिता एनजी-दोहराने का सूचकांक एक्सेस करें मेरी सूची आइटम बुलेट फ़्लोटिंग तत्वों को ओवरलैप क्यों करते हैं स्व संदर्भित पेड़ का सबसे प्रभावी तरीका इकाई फ़्रेमवर्क का उपयोग कर अपवाद या त्रुटि कोड एएसपी.NET / PHP के मुख्य धारा जावा विकल्प क्या है फेसबुक एपीआई का उपयोग कर दोस्तों की पूरी सूची पुनः प्राप्त करें सेट अंतराल रोकें एसवीजी ग्रुप पर ट्रांसफ़ॉर्मेशन मूल सेट फ़ायरफ़ॉक्स में काम नहीं कर रहा है JQuery और HTML का उपयोग करके सीएसवी में निर्यात करें एंड्रॉइड की <layer-list> को समझना

एंड्रॉइड में RelativeLayout के विचारों के Z ऑर्डर को परिभाषित करना

मैं एंड्रॉइड में एक रिलेटिव लेआउट के दृश्यों के z ऑर्डर को परिभाषित करना चाहता हूं।

मुझे पता है कि ऐसा करने का एक तरीका है bringToFront बुला रहा है

क्या ऐसा करने का बेहतर तरीका है? यह बहुत अच्छा होगा अगर मैं लेआउट xml में z ऑर्डर को परिभाषित कर सकता हूं।

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड में RelativeLayout के विचारों के Z ऑर्डर को परिभाषित करना"

सबसे आसान तरीका बस उस आदेश पर ध्यान देना है जिसमें आपकी XML फ़ाइल में दृश्य जोड़े गए हैं। फ़ाइल में निचले स्तर का मतलब Z- अक्ष में अधिक है

संपादित करें: यह यहां और यहां एंड्रॉइड डेवलपर साइट पर प्रलेखित है । (धन्यवाद @ फ़्लाईप्लेनर)

यदि आप ऐसा कोड करना चाहते हैं तो आप ऐसा कर सकते हैं

 View.bringToFront(); 

डॉक्स देखें

कृपया ध्यान दें, एपीआई 21 और अधिक से अधिक बटन और अन्य तत्व उच्च ऊंचाई वाले हैं, और इसलिए मूल लेआउट के बावजूद तत्वों के XML ऑर्डर को अनदेखा करें। मुझे यह पता लगाने में थोड़ी देर लग गई

मुझे एक ही समस्या का सामना करना पड़ा: एक रिश्तेदार लेआउट के माता-पिता में देखें, मेरे पास 2 बच्चे बच्चे हैं View1 और childView2 सबसे पहले, मैं childView1 बच्चे View2 से ऊपर डाल दिया और मैं चाहता हूँ कि बच्चे View1 childView2 के शीर्ष पर होना चाहिए बच्चों के विचारों को बदलने के लिए मेरे लिए समस्या का समाधान नहीं हुआ। एंड्रॉइड सेट करने के लिए मेरे लिए क्या काम किया गया है : clipChildren = मूल दृश्य पर "गलत" और मैं सेट किए गए कोड में:

 childView1.bringToFront(); parentView.invalidate(); 

कृपया ध्यान दें कि आप एपीआई स्तर 21 से शुरू होने वाले view.setZ(float) उपयोग कर सकते हैं। यहां आप अधिक जानकारी पा सकते हैं।

एपीआई स्तर 21 से शुरु एंड्रॉइड में, लेआउट फ़ाइल में आइटम दोनों को अपने जेड ऑर्डर मिलते हैं, ताकि सही जवाब में वर्णित के रूप में फ़ाइल के भीतर उनका आदेश दिया गया हो, और उनकी ऊँचाई से, उच्च ऊँचाई मान का अर्थ है कि आइटम को एक उच्च जेड ऑर्डर मिल जाता है ।

यह कभी-कभी समस्याएं उत्पन्न कर सकता है, विशेष रूप से उन बटनों के ऊपर जो विशेष रूप से उन आइटम्स के शीर्ष पर दिखाई देते हैं जो XML आदेश के अनुसार उन्हें Z क्रम में नीचे होनी चाहिए। इसे ठीक करने के लिए सिर्फ android:elevation सेट करें android:elevation अपने लेआउट एक्सएमएल में आइटम्स के android:elevation को हासिल करने के लिए जेड ऑर्डर से मिलान करना

मैं लेआउट में एक तत्व की ऊंचाई को सेट करता हूं, यह एक छाया डालना शुरू कर देगा। यदि आप यह प्रभाव नहीं चाहते हैं तो आप छाया के साथ ऐसा कोड निकाल सकते हैं:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { myView.setOutlineProvider(null); } 

मुझे लेआउट xml के माध्यम से एक उन्नत दृश्य की छाया को निकालने का कोई तरीका नहीं मिला है।

सोचा था कि मैं के परिचय के बाद से एक जवाब जोड़ना होगा

एंड्रॉयड: translationZ

एक्सएमएल फील्ड ने चीजों को बदल दिया अन्य जवाब जो चलने का सुझाव देते हैं

 childView1.bringToFront(); parentView.invalidate(); 

पूरी तरह से EXCEPT पर मौजूद हैं क्योंकि यह कोड किसी भी दृश्य के सामने childView1 को हार्डकोड एंड्रॉइड के साथ नहीं लाएगा: XML फ़ाइल में TranslationZ। मुझे इसके साथ समस्याएं आ रही थीं, और एक बार मैंने इस फ़ील्ड को अन्य दृश्यों से हटा दिया, लाटेफ्रॉन्ट () ने काम किया, ठीक है।

childView.bringToFront () मेरे लिए काम नहीं किया है, इसलिए मैंने कम से कम हाल ही में जोड़े गए आइटम (जो कि अन्य सभी बच्चों को ओवरले कर रहा था) की जेड अनुवाद को ऐसे नकारात्मक मान से सेट किया है:

lastView.setTranslationZ(-10);

अधिक के लिए https://developer.android.com/reference/android/view/View.html#setTranslationZ (फ्लोट) देखें

एपीआई 21 में view.setElevation(float) बिल्ड-इन है

ViewCompat.setElevation(view, float); उपयोग करें ViewCompat.setElevation(view, float); पिछड़े संगतता के लिए

अधिक विधियों ViewCompat.setZ(v, pixels) और ViewCompat.setTranslationZ(v, pixels)

एंथर बटन बटन को इकट्ठा करते हैं या सरणी को देखें और अंत में इसे जोड़ें

आप RelativeLayout साथ कस्टम RelativeLayout उपयोग कर सकते हैं

protected int getChildDrawingOrder (int childCount, int i)

जागरूक रहें – इस विधि परम i " i कौन सा दृष्टिकोण चाहिए i'th " के रूप में लेता है इस तरह से ViewPager काम करता है यह PageTransformer साथ conjuction में कस्टम ड्राइंग ऑर्डर सेट करता है