2015-02-13 8 views
5

के हम कहते हैं की मद दृश्य निम्नलिखित सेट करते हैं:परिपत्र RecyclerView

View1 -> View2 -> View3 -> ... -> View(n-1) -> View(n) 

क्लासिक RecyclerView पर, View1 पिछले पर प्रथम स्थान और देखें (एन) पर किया जाएगा। अब मुझे लगता है कि परिपत्र बनाने के लिए तो अंतिम स्थिति के बाद हम पहले की स्थिति को फिर से स्क्रॉल करना चाहते हैं:

View1 -> View2 -> View3 -> ... -> View(n-1) -> View(n) -> View1 -> View2 -> ... 
फर्स्ट लुक पर

यह सुनिश्चित करने के लिए सरल लगता है, लेकिन मुझे यकीन है कि पूरा करने के लिए कैसे है कि दृश्य के बाद "रीसेट" (एन नहीं कर रहा हूँ)। कोई सलाह वास्तव में सहायक होगी। धन्यवाद।

उत्तर

0

मैंने यह स्वयं नहीं किया है, लेकिन मुझे लगता है कि यह दृष्टिकोण काम करेगा।

सबसे पहले आपको यह जानने की जरूरत है कि कौन से विचार संलग्न/दृश्यमान हैं। एक पदानुक्रम परिवर्तन श्रोता यह कर सकता है, या एक कस्टम दृश्य जो आपके आइटम के विचारों को झुकाता है। वैसे भी, जब आप एडाप्टर के अंत के करीब होते हैं तो आप बस में ट्रैक डालना शुरू करते हैं; एडाप्टर के दूसरे छोर से वस्तुओं को हटा दें और उन्हें इस अंत में जोड़ें, कॉलिंग को सूचित करें रेंज करें और सूचित करें श्रेणी दें जैसा आपने किया है। हटाए गए और सम्मिलित दृश्य प्रदर्शित क्षेत्र के बाहर होना चाहिए, इसलिए कोई एनिमेशन नहीं होगा, हालांकि ग्रिडलेआउट प्रबंधक के लिए आपको कॉलम की संख्या के गुणकों में काम करने की आवश्यकता होगी।

आपको रीसाइक्लिंग व्यू को भरने के लिए पर्याप्त सामग्री नहीं होने पर क्या करना है इसके बारे में सोचना होगा। रीसाइक्लर दृश्य से पहले आप कम से कम कुछ आइटम भी बनना चाहते हैं, क्योंकि यह स्क्रॉल करता है, आपको ऐसा करने के लिए डुप्लिकेट जोड़ना पड़ सकता है। मैं एक समय में कम से कम एक सामग्री की सामग्री को आगे बढ़ाना पसंद करूंगा।

मुझे लगता है कि स्क्रॉल सूचक बग आउट होगा। एक कस्टम लेआउट प्रबंधक एक बहुत अच्छा संकेत दे सकता है।

4

कृपया सूची दृश्य के लिए this solution देखें। आप RecyclerView.Adapter लिख सकते हैं जिसमें Integer.MAX_VALUE आइटम हैं। केवल अंतर यह है कि RecyclerView में अब setSelectionFromTop विधि नहीं है। इसके बजाय आपको

recyclerView.getLayoutManager().scrollToPosition(recyclerAdapter.MIDDLE); 

रीसाइक्लर स्क्रॉल करने के लिए पहले मध्य में देखें।