मैं जावा में एक गोलाकार दृश्य पेजर 2 (अनंत-स्क्रॉलिंग) कैसे बना सकता हूं? उदाहरण के लिए मैं बाईं ओर स्वाइप करते हुए पेज 1 से पेज 100 तक जाना चाहता हूं और रुकना नहीं चाहता।

myViewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            super.onPageScrolled(position, positionOffset, positionOffsetPixels);
            Log.d(CPAct,"onPageScrolled "+position);
        }

        @Override
        public void onPageSelected(int position) {
            super.onPageSelected(position);
            Log.d(CPAct,"onPageSelected Position: "+position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {
            super.onPageScrollStateChanged(state);
            Log.d(CPAct,"onPageScrollStateChanged  state: "+state);
          
            if (state == ViewPager2.SCROLL_STATE_IDLE) {
                if (myViewPager2.getCurrentItem() == 0)
                    myViewPager2.setCurrentItem(99, false);
                else if (myViewPager2.getCurrentItem() == 99) 
                    myViewPager2.setCurrentItem(0, false);
            }

मैंने एडेप्टर सेट करने के बाद initView() में उपरोक्त कोड की कोशिश की लेकिन यह ठीक से काम नहीं करता है। उदाहरण के लिए जब मैं पृष्ठ 2 से बाईं ओर स्वाइप करता हूं, तो यह सीधे अंतिम पृष्ठ पर जाता है और पृष्ठ 1 को छोड़ दिया जाता है। यही बात तब होती है जब मैं अंतिम पृष्ठ पर जाने के लिए दाएं स्वाइप करता हूं और यह सीधे पृष्ठ 1 पर जाता है। मैं बस एक बनाना चाहता हूं किसी भी पेज को छोड़े बिना अनंत स्क्रॉलिंग।

2
Sarab 26 नवम्बर 2020, 10:50

1 उत्तर

सबसे बढ़िया उत्तर

आपको Adapter का कोड पोस्ट करना चाहिए, वहां आपको Integer.MAX_VALUE को getCount में वापस करना चाहिए और सूची आइटम को चित्रित करने के लिए उचित फ़ेचिंग मॉडल पेश करना चाहिए - उदा। यदि आपके पास ArrayList data है तो data.get(position % data.getItemCount()) का उपयोग getItem में करें (क्योंकि सरणी का आकार निश्चित है, लेकिन आप एडॉप्टर को बहुत बड़ी/अनंत संख्या में आइटम के बारे में सूचित कर रहे हैं)

आपका वर्तमान अपमान अच्छा नहीं है, क्योंकि आप View की स्थिति में हेर-फेर कर रहे हैं, यह जल्द या बाद में कुछ दृश्य गड़बड़ियां जोड़ देगा, और यह भी बहुत कुशल नहीं है

1
snachmsm 26 नवम्बर 2020, 09:16