मैं एक RecyclerView और संबंधित LinearLayoutManager के साथ काम कर रहा हूं। मैं अपने ऐप के हिस्से में कुछ कस्टम स्क्रॉलिंग फीचर्स जोड़ रहा था, जहां मैं इस प्रोजेक्ट के बाद मॉडलिंग किए गए रीसाइक्लिंग व्यू के स्क्रॉल के साथ कस्टम हेडर ऑब्जेक्ट का अनुवाद करूंगा: https://github.com/boxme/ParallaxHeaderViewPager (जो रीसाइक्लिंग व्यू के बजाय ListView का उपयोग करता है)।पुनर्चक्रण देखें LinearLayoutManager computeVerticalScrollOffset() सही मान वापस नहीं कर रहा है
हालांकि मैं एक अजीब मुद्दे में भाग गया। यह थोड़ी देर के लिए बस ठीक होगा लेकिन फिर यह कुछ सौ पिक्सेल कूद जाएगा। मैंने LinearLayoutManager.computeVerticalScrollOffset() द्वारा गणना किए गए ऑफसेट को देखने के लिए लॉग स्टेटमेंट जोड़े, जैसा कि मैंने पर्याप्त रूप से स्क्रॉल किया था, ऑफ़सेट यादृच्छिक रूप से 320 से 1200 तक कूद रहा था, फिर यह उस बिंदु से ऑफसेट को उचित रूप से कंप्यूटिंग जारी रखेगा।
नीचे दिए गए मेरे जवाब को मैंने कैसे हल किया है!
ऐसा करने के बजाय, आप एक सस्ता और अधिक उचित समाधान के लिए 'computeVerticalScrollOffset', 'सीमा' और' श्रेणी' को ओवरराइड कर सकते हैं। – yigit
यह एक अच्छा विचार है! मैं रीसाइक्लर व्यू और लेआउट मैनेजर विधियों को ओवरराइड करने से थोड़ा सावधान था क्योंकि कक्षाएं अभी भी अपेक्षाकृत नई हैं और भविष्य में महत्वपूर्ण रूप से बदल सकती हैं। मैं मानता हूं कि मेरा समाधान हैकर पक्ष पर था, लेकिन कम से कम इसे अभी भी काम करना चाहिए यदि कक्षा भविष्य में बदलती है :) – rakoonise
वे विधियां देखने से दर्पण हैं ताकि परिवर्तन को बदलने की संभावना बहुत कम हो। साथ ही, जब हम एक सार्वजनिक विधि बदलते हैं, तो हम इसे संभवतः पिछड़ा संगत बनाने की कोशिश करते हैं यदि संभव हो तो – yigit