मैं इस समस्या से पागल हो रहा हूं, अब 4 घंटों से इसमें खोद रहा हूं और मुझे लगता है कि मैं फिर से ध्यान केंद्रित नहीं कर सकता हूं, इसलिए यह एक आसान है।एंड्रॉइड ऑनस्कोल स्क्रॉलव्यू के लिए स्क्रॉल किए गए एकाधिक टाइम्स
मूल रूप से मैं एक scrollview पर scrolly यह करने के लिए एक onScrollChanges श्रोता साथ
मैं ViewTreeObserver उपयोग कर रहा हूँ (नहीं, मैं एक ग्रिड या एक सूची का उपयोग नहीं कर सकते हैं) का ट्रैक रखना चाहते हैं। हालांकि, यह कई बार निकाल दिया जाता है। इससे भी बदतर: जब इसे 4 बार 3 बार कहा जाता है, तो स्क्रॉलव्यू की स्क्रॉलवाई 0 और 1 बार मुझे सही राशि मिलती है। हालांकि, ऐसा नहीं है कि प्रत्येक 4 वें कॉल सही है, जिस क्षण सही मूल्य निकाल दिया जाता है वह यादृच्छिक है, और मुझे स्क्रॉलपॉशन 0 को सुनने में सक्षम होना चाहिए।
यहां कोड है जिसका उपयोग मैं अपने स्क्रॉलव्यू पर्यवेक्षक के लिए करता हूं:
mScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
Log.d("StupidScrollView", "Scroll positionY: " + mScrollView.getScrollY());
}
});
नमूना उत्पादन:
D/StupidScrollView﹕ Scroll positionY: 0
D/StupidScrollView﹕ Scroll positionY: 0
D/StupidScrollView﹕ Scroll positionY: 0
D/StupidScrollView﹕ Scroll positionY: 77
मैं उल्लेख करना होगा, मैं एक ViewPager में हूँ और मेरा टुकड़े एक scrollview जो मनाया किए जाने की आवश्यकता होती है। यह किसी भी तरह से संबंधित कुछ मुद्दे की तरह लगता है।
अग्रिम धन्यवाद!
मुझे एक ही स्थिति का सामना करना पड़ रहा है, मेरे कस्टम व्यू में मेरे पास व्यू ट्री ऑब्सर्वर है, और मुझे getY() मान की जांच करने की आवश्यकता है और बस आपके मामले की तरह, हर दूसरे या तीसरे मान सही हैं। क्या आप कृपया मुझे यहां मार्गदर्शन कर सकते हैं? धन्यवाद। – ShahrozKhan91