गतिविधि से व्यूपेजर फ्रैगमेंट विधि तक पहुंचें
कई मोबाइल एप्लिकेशन मॉड्यूलर स्क्रीन सेक्शन का प्रतिनिधित्व करने वाले टुकड़ों, स्व-निहित घटकों का उपयोग करते हैं। व्यू पेजर का उपयोग करके कई टुकड़ों को प्रबंधित करने से सहज नेविगेशन और पेज एनिमेशन मिलते हैं। कभी-कभी, डेवलपर्स को बाहरी घटनाओं के जवाब में एक खंड के भीतर विशिष्ट क्रियाएं करने की आवश्यकता का सामना करना पड़ता है, जैसे उपयोगकर्ता द्वारा व्यू पेजर पर स्वाइप करना। हालाँकि, इस कार्यक्षमता को लागू करने में कुछ चुनौतियों का सामना करना पड़ सकता है। हालांकि इस दृष्टिकोण ने काम किया, इसने खंड संक्रमण के दौरान एक ध्यान देने योग्य अंतराल पेश किया। हालाँकि, OnPageChangeListener के एक टुकड़े के भीतर एक विधि को निष्पादित करने का प्रयास करने पर एक NullPointerException उत्पन्न हुई। पेजर एडाप्टर. ViewPager एक विधि प्रदान करता है जिसे InstantiateItem कहा जाता है जिसे किसी सरणी या संग्रह में खंड संदर्भों को संग्रहीत करने के लिए ओवरराइड किया जा सकता है। ऑनपेजसेलेक्टेड इवेंट के दौरान, आप एडॉप्टर से वांछित टुकड़े के उदाहरण तक पहुंच सकते हैं और आवश्यक क्रियाएं कर सकते हैं, जैसे नेटवर्क अनुरोध शुरू करना।
उदाहरण कोड (जावा)
पब्लिक क्लास पेजर एडाप्टर FragmentPager एडाप्टर का विस्तार करता है { निजी टुकड़ा[] टुकड़े; सार्वजनिक पेजर एडाप्टर (फ्रैगमेंट मैनेजर एफएम, संदर्भ संदर्भ) { सुपर(एफएम); } @ओवरराइड सार्वजनिक ऑब्जेक्ट इंस्टेंटियेटआइटम (व्यूग्रुप कंटेनर, इंट पोजीशन) { फ़्रैगमेंट निर्मितफ़्रैगमेंट = (फ़्रैगमेंट) super.instantiateItem(कंटेनर, स्थिति); टुकड़े [स्थिति] = निर्मित टुकड़ा; रिटर्न क्रिएटफ्रैगमेंट; } } // आपकी गतिविधि के भीतर जो पेजर को होस्ट करता है: onPageChangeListener = नया ViewPager.OnPageChangeListener() { @ओवरराइड सार्वजनिक शून्य onPageSelected(int स्थिति) { //मान लीजिए कि आपने अपने टुकड़े का नाम FragmentTwo रखा है फ़्रैगमेंट फ़्रैग = एडाप्टर.फ़्रैगमेंट्स[स्थिति]; यदि (frag != null && Frag इंस्टेंसof FragmentTwo) { ((FragmentTwo) frag).sendGetRequest(); } } };
कोटलिन समतुल्य (कोटलिन एक्सटेंशन और व्यूपेजर2 के साथ)
viewPager.registerOnPageChangeCallback( ऑब्जेक्ट: ViewPager2.OnPageChangeCallback() { मनोरंजन को ओवरराइड करें onPageSelected(स्थिति: Int) { वैल फ्रैग = mAdapter.fragments[स्थिति] यदि (frag FragmentTwo है) { frag.sendGetRequest() } } } )
निष्कर्ष
इस दृष्टिकोण को लागू करके, आप अपनी होस्टिंग गतिविधि के अंशों के साथ प्रभावी ढंग से संचार कर सकते हैं, जिससे आपके मोबाइल एप्लिकेशन के भीतर निर्बाध एकीकरण और उन्नत उपयोगकर्ता अनुभव सक्षम हो सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3