मैं अभी RecyclerView
के साथ खेल रहा हूं और निम्न समस्या पर ठोकर खा रहा हूं। जब RecyclerView के LinearLayoutManager
दृश्य को बंद कर दिया गया है या नहीं, तो यह निर्णय लेता है (इसलिए यह रीसाइक्लर हो सकता है) यह खाता दृश्य translationY
में नहीं लेता है।रीसाइक्लिंग दृश्य दृश्यों का पुनर्चक्रण करते समय अनुवाद का सम्मान नहीं करता
तो अनिवार्य रूप से, जब मैं स्क्रॉल करता हूं और मेरे पास सकारात्मक translationY
, LinearLayoutManager
के साथ विचार हैं, तो लगता है कि दृश्य स्क्रीन बंद है, लेकिन वास्तव में, यह अभी भी दिखाई दे रहा है (क्योंकि इसका अनुवाद नीचे किया गया है)।
मैंने देखा है कि जिस तरह से LinearLayoutManager
इस निर्णय करता है - getDecoratedBottom(View)
को देखकर है, इसलिए मैं ओवरराइड करने के लिए getDecoratedBottom(View)
भी अनुवाद में शामिल करने की कोशिश की। दुर्भाग्य से, यह पूरी तरह से लेआउट को खराब करता है - इस विधि को भी प्रयोग किया जाता है जब हम नए आइटम लेआउट, इसलिए नए आइटम अतिरिक्त अनुवाद (एक मौजूदा के शीर्ष पर) प्राप्त ..
वहाँ एक आसान तरीका LinearLayoutManager
बताने के लिए translation
को देखने के लिए है गुण जब रीसाइक्लिंग दृश्य के बारे में निर्णय लेता है w/o स्क्रैच से LayoutManager
पुन: कार्यान्वित करता है?
क्या आपको समस्या का समाधान मिला है? –
@ZakharovRoman हाँ ... फोर्कड लीनियरआउटआउट प्रबंधक कार्यान्वयन और अनुवाद को शामिल करने के लिए इसके तर्क को थोड़ा सा संशोधित करता है। लेकिन 'बॉक्स से बाहर' कुछ भी वास्तव में इस मुद्दे को हल नहीं कर सकता था। –
ठीक है, मैं कोशिश करूंगा। धन्यवाद –