में ठीक से काम नहीं करता है मेरे पास क्षैतिज स्क्रॉलिंग आंतरिक रीसाइक्लिंग दृश्यों के साथ लंबवत स्क्रॉलिंग RecyclerView
है।scrollBy नेस्टेड रीसाइक्लर्विव
, उन तुल्यकालिक प्रत्येक क्षैतिज recyclerview स्क्रॉल कर सकते हैं। हालांकि, जब कोई उपयोगकर्ता मूल रीसाइक्लर व्यू के लिए लंबवत स्क्रॉल करता है, तो एक नया क्षैतिज रीसाइक्लर्विव जो विंडो पर अभी संलग्न है, उसी स्क्रॉल x स्थिति पर प्रदर्शित नहीं होता है। यह सामान्य बात है। क्योंकि यह अभी बनाया गया है।
तो, मैंने प्रदर्शित होने से पहले स्क्रॉल की गई स्थिति पर स्क्रॉल करने का प्रयास किया था। बस इस तरह:
नोट: यह अभिभावक पुनर्नवीनीकरण के एडाप्टर में है जिसका अभिविन्यास लंबवत है।
@Override
public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
super.onViewAttachedToWindow(holder);
CellColumnViewHolder viewHolder = (CellColumnViewHolder) holder;
if (m_nXPosition != 0) {
// this doesn't work properly
viewHolder.m_jRecyclerView.scrollBy(m_nXPosition, 0);
}
}
आप देख सकते हैं, scrollBy
पंक्ति 10, पंक्ति 11, पंक्ति 12 और पंक्ति 13 उसके बाद के लिए प्रभावित नहीं करता, मैं करने के लिए कोड डिबग क्या हो रहा है यह पता लगाने में सक्षम हो। जब मैं scrollBy, childCount का उपयोग कर पुस्तक स्थिति सेट() पंक्ति 10, पंक्ति 11, पंक्ति 12 और पंक्ति 13 तो वे स्क्रॉल नहीं है के लिए शून्य लौट आते हैं। पर क्यों ? और दूसरों क्यों काम करते हैं?
- मैं इसे कैसे ठीक कर सकता हूं?
- क्या नया दृश्य पुनर्नवीनीकरण दृश्य स्क्रॉल करने के लिए सही दृश्य है ViewAttachedToWindow सही जगह है?
नोट: मैं भी scrollToPosition()
का परीक्षण किया है, यह किसी भी समस्या के इस तरह नहीं होती है। लेकिन मैं इसे अपने मामले में उपयोग नहीं कर सकता। चूंकि उपयोगकर्ता किसी भी एक्स स्थिति में स्क्रॉल कर सकते हैं जो सटीक स्थिति नहीं हो सकता है। इसलिए मुझे स्थिति के बजाय एक्स मान का उपयोग करके स्क्रॉल स्थिति सेट करने की आवश्यकता है।
संपादित: आप देख सकते हैं The source code
क्या आप इस कोड को जिथब या किसी अन्य जगह में साझा कर सकते हैं, इसलिए –
को डीबग करना आसान है मैंने अपना प्रश्न संपादित किया है। आप पूरा कोड देख सकते हैं। – ziLk
क्यों नहीं चल रहा है? – natario