Android: स्क्रॉल दृश्य बनाम NestedScrollView


160

जवाबों:


205

NestedScrollViewजैसा कि नाम से पता चलता है, जब किसी अन्य स्क्रॉलिंग दृश्य के अंदर स्क्रॉलिंग व्यू की आवश्यकता होती है। आम तौर पर यह पूरा करना मुश्किल होगा क्योंकि सिस्टम यह तय करने में असमर्थ होगा कि किस दृश्य को स्क्रॉल करना है।

यह वह जगह है जहाँ NestedScrollViewअंदर आता है


यहाँ एक नमूना अनुप्रयोग है जो एक पेरेंट स्क्रॉलव्यू के भीतर NestedScrollView का प्रदर्शन कर रहा है: github.com/AdamSHurwitz/NestedScrolling
एडम हर्विट्ज

36

नेस्टेड स्क्रॉलिंग के अलावा NestedScrollViewएक प्रमुख कार्यक्षमता को जोड़ा गया, जो नेस्टेड संदर्भों के बाहर भी दिलचस्प बना सकता है: इसके लिए समर्थन में निर्माण किया है OnScrollChangeListenerएपीआई 23 के नीचेOnScrollChangeListener मूल में जोड़ना आवश्यक उपवर्ग या इसके साथ खिलवाड़ करना , जिसका अर्थ अक्सर उपवर्ग की तुलना में अधिक कार्य होता है। इसके साथ बिल्ड-इन सेटर का उपयोग करके किया जा सकता है ।ScrollView ScrollViewViewTreeObserverScrollViewNestedScrollView


26

दिए गए उत्तरों में सूचीबद्ध लाभों के अलावा, स्क्रॉलवेड पर NestedScrollView का एक और लाभ CoordinatorLayout के साथ इसकी संगतता है। स्क्रॉलव्यू समन्वयकलेयआउट के साथ सहयोग नहीं करता है। टूलबार के लिए "स्क्रॉल ऑफ़-स्क्रीन" व्यवहार प्राप्त करने के लिए आपको NestedScrollView का उपयोग करना होगा।

टूलबार कोऑर्डिनेटरलैटआउट के बच्चे के रूप में स्क्रॉलव्यू के साथ नहीं टूटेगा


21

NestedScrollView

NestedScrollView स्क्रॉलव्यू की तरह है, लेकिन यह एंड्रॉइड के नए और पुराने दोनों संस्करणों पर नेस्टेड स्क्रॉलिंग माता-पिता और बच्चे दोनों के रूप में अभिनय का समर्थन करता है। नेस्टेड स्क्रॉलिंग डिफ़ॉल्ट रूप से सक्षम है।

https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html

scrollview

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

https://developer.android.com/reference/android/widget/ScrollView.html


8

NestedScrollView, स्क्रॉलव्यू की तरह है, लेकिन NestedScrollView में हम इसके बारे में अन्य स्क्रॉल विचार रख सकते हैं, जैसे कि RecyclerView।

लेकिन अगर हम RecyclerView को NestedScrollView के अंदर रखते हैं, तो RecyclerView की चिकनी स्क्रॉलिंग गड़बड़ा जाती है। तो वापस सुचारू स्क्रॉलिंग लाने के लिए ट्रिक है:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

recyclerView के लिए एडेप्टर सेट करने के बाद ऊपर की लाइन लगाएं।


बहुत बहुत धन्यवाद भाई: D
ज़फर इकबाल

ध्यान रखें कि लेआउट पास / उपायों के संदर्भ में ऐसा करना (एक नेस्टेड के अंदर recyclerView) काफी अक्षम है। इसका परीक्षण करें और आप देखेंगे कि कैसे आरवी "रीसाइक्लिंग" विचारों को रोकता है।
मार्टिन मार्कोसिनी

2

मुझे लगता है कि नेस्टेड स्क्रॉल दृश्य का उपयोग करने का एक लाभ यह है कि कोऑर्डिनेटर लेआउट केवल नेस्टेड स्क्रॉल घटनाओं के लिए सुनता है। इसलिए अगर पूर्व के लिए। आप टूलबार को नीचे स्क्रॉल करना चाहते हैं जब आप गतिविधि की सामग्री को स्क्रॉल करते हैं, तो यह केवल तब नीचे स्क्रॉल करेगा जब आप अपने लेआउट में नेस्टेड स्क्रॉल दृश्य का उपयोग कर रहे हों। यदि आप अपने लेआउट में एक सामान्य स्क्रॉल दृश्य का उपयोग करते हैं, तो उपयोगकर्ता द्वारा सामग्री को स्क्रॉल करने पर टूलबार न स्क्रॉल करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.