2013-04-29 2 views
9

क्या सूची दृश्य में आइटम बनाना अलग-अलग z-position/index है?ListView आइटम्स के लिए अलग-अलग z-position

मुझे अपने सूची में एक आइटम हमेशा मेरे लेआउट में अन्य दृश्यों के शीर्ष पर होना चाहिए।

enter image description here

लाल पट्टी (मेरे मामले एक ऊर्ध्वाधर seekbar में) ListView के बाहर एक और दृश्य है:

मेरे उदाहरण यहाँ देखें।

मैंने एक निश्चित आइटम पर View.bringToFront() पर कॉल करने का प्रयास किया है, लेकिन यह बिल्कुल काम नहीं करता है।

कोई भी विचार?

सूची का प्रत्येक आइटम यह में लाल बार आइटम की ऊंचाई है कि होना चाहिए:

+0

बस आप 'z-index' बदल सकते हैं ताकि वस्तु अपने पेज की स्थिति में आगे या पीछे की ओर ले जाता है के रूप में उपयोगकर्ता पृष्ठ के साथ सूचना का आदान प्रदान किसी भी मूल्य की तरह। – Andrew

+0

@ एंड्रयू दृश्य के जेड-इंडेक्स को बदलकर सिर्फ स्थिति को बदल देगा ** इसके भाई विचारों के सापेक्ष **। सूची में सभी सूची 'सूची दृश्य' में भाई बहन हैं, लेकिन जेड-इंडेक्स को बदलने से कोई प्रभाव नहीं पड़ेगा क्योंकि सूची आइटम ओवरलैप नहीं होते हैं। सूची में एक आइटम के जेड-इंडेक्स को बदलना ** ** ** इसे किसी अन्य दृश्य के सामने आगे बढ़ने के लिए तैयार नहीं करेगा कि ** 'ListView' ** में विचारों का भाई नहीं है। –

उत्तर

1

यहाँ कैसे मैं प्रभाव आप इच्छा प्राप्त करने के बारे में जाना है। इस तरह सभी लाल सलाखों को लाइन बनाने की तरह दिखती है, केवल एक लाल बार होती है जब वास्तव में एक प्रति वस्तु होती है।

यदि आप FrameLayout का उपयोग कर रहे हैं, तो बच्चों का क्रम ड्राइंग आदेश निर्धारित करता है, उदाहरण के लिए FrameLayout का तीसरा बच्चा पहले और दूसरे बच्चे के शीर्ष पर दिखाई देगा।

फिर रनटाइम पर आप प्रत्येक आइटम की सामग्री के ऊपर या नीचे लाल बार की व्यवस्था कर सकते हैं। अपने एडाप्टर की bindView विधि में आप उस दृश्य के लिए लाल बार को सामने लाने के लिए bringToFront विधि का उपयोग कर सकते हैं। यह मत भूलना कि ListView में विचारों का पुनर्नवीनीकरण किया गया है, इसलिए आपको हर बार जेड स्थिति को सही करने के लिए लाल बार को स्थानांतरित करने की आवश्यकता होगी।

यहां एक आइटम के लिए एक बहुत ही अलग उदाहरण उदाहरण XML फ़ाइल है, अगर आपको अधिक जानकारी चाहिए तो मुझे बताएं।

item_red_bar_bottom.xml:

<FrameLayout ...> 
    <ImageView .../> <!-- Red bar on bottom --> 
    <FrameLayout ...> 
     <!-- Normal item contents go here --> 
    </FrameLayout> 
</FrameLayout>