मेरे पास एक रीसाइक्लिंग दृश्य है जहां पहले आइटम में शीर्षलेख होना चाहिए। जिस तरह से मैंने इसे वर्तमान में कार्यान्वित किया है वह एडाप्टर स्थिति प्राप्त करना है और यदि यह 0 है तो मैंने हेडर युक्त टेक्स्टव्यू को दृश्यमान पर सेट किया है और इसे किसी अन्य मान के लिए चला गया है। हालांकि जब मैं पहले आइटम को InformItemRemoved के माध्यम से हटा देता हूं, तो शीर्षलेख नए पहले आइटम पर दिखाई नहीं देता है (यानी पहले दूसरा आइटम क्या था)। क्या कोई कृपया मुझे बता सकता है कि मुझे क्या करना चाहिए?

अद्यतन: मेरा मतलब यह है कि मेरे पास दृश्य में हेडर टेक्स्ट है और मुझे दृश्यता को टॉगल करने की आवश्यकता है, इस पर निर्भर करता है कि दृश्य रीसाइक्लरव्यू में पहला है या नहीं।

तो वर्तमान में मैं ऑनबिंडव्यूहोल्डर विधि में दृश्यता को टॉगल करता हूं जहां मैं जांचता हूं कि स्थिति 0 है या नहीं और फिर शीर्षक दृश्यता को देखने के लिए सेट करें। अन्य को देखने के लिए दृश्यमान। हालाँकि इसके लिए किसी भी समय काम करने के लिए मेरे पास एडॉप्टर में कोई बदलाव है तो मुझे फिर से पूरे एडॉप्टर को फिर से बनाने और इसे रिसाइकलर व्यू पर सेट करने की आवश्यकता है।

कोड पोस्ट न करने के लिए खेद है लेकिन इसमें कुछ संवेदनशील जानकारी है जिसका मैं खुलासा नहीं कर सकता

0
Abhishek Shrinivasan 16 अगस्त 2018, 02:58
आपको प्रासंगिक कोड पोस्ट करके शुरू करना चाहिए।
 – 
chb
16 अगस्त 2018, 03:07
आप किस बिंदु पर पहला तर्क कर रहे हैं। यदि यह एडॉप्टर में है तो क्या हो रहा है कि, तर्क पहले ही निष्पादित हो चुका है और आपके द्वारा सूचित किए जाने के बाद प्रभावी नहीं होगा। संभवतः आइटम को सूची से हटा दें और पुनरावर्तक दृश्य सूची को फिर से सेट करें
 – 
Xixis
16 अगस्त 2018, 03:10

3 जवाब

आपको यह तय करने के लिए getItemViewType(int position) विधि का उपयोग करना होगा कि कौन सी वस्तु किस स्थिति में होनी चाहिए।

private static final int HEADER = 0;
private static final int ITEMS = 1;
@Override
public int getItemViewType(int position) {

    if (position == 0) {
        return HEADER;
    } else {
        return ITEMS;
    }
}

getItemCount() में आपको एक और आइटम जोड़ना होगा क्योंकि हमारे पास हेडर है

 @Override
public int getItemCount() {
    return sections.size() + 1;
}
0
Hemanth S Tobi 16 अगस्त 2018, 03:25
आपके जवाब के लिए धन्यवाद। हालांकि हेडर एक अलग दृश्य नहीं है बल्कि केवल एक टेक्स्टव्यू है जो दृश्य पहली स्थिति में होने पर स्वचालित रूप से दिखाई देना चाहिए
 – 
Abhishek Shrinivasan
16 अगस्त 2018, 16:13
 @Override
public void onBindViewHolder(MyViewHolder holder, int position) {



    if(position==5) {
       holder.textview.setVisibility(View.GONE);
    }
}
0
Syed Danish Haider 16 अगस्त 2018, 16:15

उत्तरों के लिए आप सभी का धन्यवाद। हालांकि, उन्होंने मेरी समस्या का समाधान नहीं किया है और कम से कम अभी के लिए मैंने दृश्य स्थिति प्राप्त करने के लिए रीसाइक्लिंगव्यू के लेआउट मैनेजर का उपयोग करके इसे हल किया है और यदि दृश्य की स्थिति को हटाया जाना 0 है तो मैंने हेडर टेक्स्टव्यू सेट किया है दूसरे दृश्य को देखने के लिए और InformItemRemoved को कॉल करें। यदि स्थिति 0 नहीं है तो मैं सिर्फ InformItemRemoved को कॉल करता हूं।

0
Abhishek Shrinivasan 16 अगस्त 2018, 20:09