मेरे पास कुछ विजेट्स के साथ गिटहब में एक प्रोजेक्ट है। यहाँ यह अपनी:
https://github.com/CyberEagle/AndroidWidgets
निम्नलिखित पैकेज में, वहाँ एडेप्टर CircularViewPager साथ प्रयोग किया जा करने के लिए कर रहे हैं: https://github.com/CyberEagle/AndroidWidgets/tree/master/src/main/java/br/com/cybereagle/androidwidgets/adapter
पहले, आप अपने लेआउट में ViewPager के बजाय CircularViewPager का प्रयोग करेंगे। सर्कुलर व्यूपेजर यहां है: https://github.com/CyberEagle/AndroidWidgets/blob/master/src/main/java/br/com/cybereagle/androidwidgets/view/CircularViewPager.java
यह व्यूपेगर एक पेजर एडाप्टर की बजाय एक रैपरक्रिकुलर पेजर एडाप्टर की अपेक्षा करता है। इस रैपर को व्यूपाजर को चालित करने के लिए उपयोग किया जाता है, यह सोचने के लिए कि व्यूपेजर में बहुत सी चीजें हैं, लेकिन यह वास्तव में परिपत्र प्रभाव बनाने के लिए आपके आइटम दोहराती है। तो, पेजर एडाप्टर, FragmentPagerAdapter या FragmentStatePagerAdapter को लागू करने के बजाय, आप या तो परिपत्रफ्रेगमेंट पेजर एडाप्टर, सर्कुलरफ्रैगमेंटस्टेट पेजर एडाप्टर या सर्कुलर पेजर एडाप्टर लागू करेंगे। फिर, आप अपने एडाप्टर को WrapperCircularPagerAdapter के साथ लपेटेंगे और अपने एडाप्टर की बजाय परिपत्र ViewPager में रैपर सेट करेंगे। साथ ही, जब डेटासेट को सूचित करने का समय बदल गया है, तो आप रैपर में अधिसूचना डेटासेट चेंज() को कॉल करेंगे।
सर्कुलर एडाप्टर में से किसी एक को लागू करते समय, आप देखेंगे कि तत्काल इटैम को लागू करने के बजाय, आपको तत्काल VirtualItem लागू करना होगा। टुकड़े के पेजर एडाप्टर के लिए, आप getItem के बजाय getVirtualItem लागू करेंगे। ऐसा इसलिए है क्योंकि मैंने आभासी वस्तुओं की अवधारणा बनाई है।
इसे स्पष्ट करने के लिए, 4 आइटम के साथ एक दृश्य पेजर की कल्पना करें, जिससे प्रत्येक आइटम संगीत का प्रतिनिधित्व करता है। जब आप बाईं ओर जाने के लिए जाते हैं, तो आप पहले के बाईं ओर चौथी वस्तु देखेंगे। असल में, यह एक पूरी नई वस्तु है, लेकिन यह वर्चुअल आइटम से जुड़ा हुआ है जो चौथे संगीत का प्रतिनिधित्व करता है।
एक और उदाहरण: कल्पना करें कि अब केवल एक संगीत है। आप बाईं ओर और दाईं ओर एक ही संगीत देखेंगे। एक समय में 3 आइटम हैं, लेकिन केवल एक वर्चुअल आइटम है।
तो, समझाया गया है कि, रैपर व्यूपाजर को छू रहा है, जिससे यह सोचता है कि बहुत सारी चीज़ें हैं। उपयोगकर्ता को ViewPager के सिरों में से किसी एक तक पहुंचने के लिए और अधिक कठिन बनाने के लिए (इसे किसी भी समय लंबा समय लगेगा), प्रत्येक बार डेटासेट में कोई परिवर्तन होता है, व्यूपेजर एक ही वर्चुअल आइटम पर जाता है, लेकिन इनमें से एक के लिए बीच के पास वास्तविक वस्तुओं।
एक और महत्वपूर्ण बात यह है कि सर्कुलर व्यूपेगर में विधि सेट है CurrentVirtualItem।यह विधि गणना करती है कि कौन सी वास्तविक वस्तु निकटतम वांछित वर्चुअल आइटम है और फिर यह सेट करने के लिए setCurrentItem का उपयोग करती है। आपके पास getCurrentVirtualItem का उपयोग करने का विकल्प भी है, जो वर्तमान वर्चुअल आइटम की अनुक्रमणिका लौटाएगा। ध्यान दें कि यदि आप getCurrentItem का उपयोग करते हैं, तो आपको एक बड़ी अनुक्रमणिका मिल जाएगी।
अच्छा, यह है। परियोजना के दस्तावेज़ीकरण की कमी के लिए मुझे खेद है। मैं इसे जल्द ही दस्तावेज की योजना बना रहा हूं। मैं रैपर की आवश्यकता को हटाने की भी योजना बना रहा हूं। कोड को कॉपी करने के लिए स्वतंत्र महसूस करें (अपाचे 2.0 लाइसेंस का सम्मान करना), कांटा या यहां तक कि इसमें योगदान देना।
मैं इस के लिए एक समाधान को क्रियान्वित किया है मदद की। मैं परीक्षणों को लगभग पूरा कर रहा हूं और जब मैं कर रहा हूं तो मैं यहां जवाब दूंगा। –
@FernandoCamargo क्या आपने इसे हल किया है ?? –
हाँ। मुझे खेद है, मैं इसे यहां जवाब देना भूल गया। मैं अब जवाब पोस्ट करूंगा। –