android - नेक्स्ट स्क्रोलव्यू स्क्रॉल के अंदर रिसाइकलवेरी है लेकिन सामान्य रिसाइक्लेव्यू या नेस्टेड स्क्रोलव्यू की तरह तेजी से स्क्रॉल नहीं करता है




android-recyclerview android-nestedscrollview (7)

आप ExtendRecyclerView वर्ग के साथ स्क्रॉलव्यू का उपयोग कर सकते हैं जो ऑनमर्ज़ विधि को ओवरराइड करता है। ये मेरे लिए सही है!

@Override
protected void onMeasure(int widthSpec, int heightSpec) {
    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
    super.onMeasure(widthSpec, expandSpec);
}

मैं NestedScrollView अंदर RecyclerView का उपयोग कर रहा NestedScrollView और यह काम करता है। लेकिन जब मैं LinearLayout या कुछ के अंदर RecyclerView उपयोग करता हूं, तो यह इशारा के आधार पर विभिन्न गति में स्क्रॉल करता है। स्क्रॉल इशारे को सुनता है और अगर मैं केवल थोड़ा ऊपर स्लाइड करता हूं, तो यह थोड़ा स्क्रॉल करता है जबकि अगर मैं वास्तव में तेजी से स्लाइड करता हूं, तो यह वास्तव में तेजी से स्क्रॉल करता है। अब मेरी समस्या यह है कि NestedScrollView अंदर RecyclerView निश्चित रूप से स्क्रॉल करता है लेकिन फास्ट स्क्रॉल काम नहीं करता है। हालाँकि मैं तेज़ या धीमी गति से स्लाइड करता हूँ, RecyclerView या NestedScrollView केवल थोड़ा स्क्रॉल करते हैं।

मैं अपने NestedScrollView या RecyclerView को उस स्क्रॉल व्यू व्यू में कैसे बना सकता हूं?


आपको LinearLayout जैसे किसी भी लेआउट में पुनर्नवीनीकरण दृश्य को लपेटना चाहिए और पुनर्नवीनीकरण आकार को स्थिर करने के लिए, 800dp की तरह सेट करना चाहिए। यह चिकनी स्क्रॉल को सक्षम करेगा और पुनर्नवीनीकरण दृश्य स्क्रॉल के दौरान अभी भी पुनर्नवीनीकरण दृश्य होगा।

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                                xmlns:app="http://schemas.android.com/apk/res-auto"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="800dp"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>


डिफ़ॉल्ट रूप से setNestedScrollingEnabled एपीआई -21 के बाद ही काम करता है।

आप ViewCompat.setNestedScrollingEnabled(recyclerView, false); उपयोग कर सकते हैं ViewCompat.setNestedScrollingEnabled(recyclerView, false); एपीआई -21 (लॉलीपॉप) से पहले और बाद के लिए नेस्टेड स्क्रॉलिंग को निष्क्रिय करने के लिए। प्रलेखन के लिए लिंक

उममीद है कि इससे मदद मिलेगी!


प्रयत्न

recyclerView.setNestedScrollingEnabled(false);

मैं इस समस्या से भी मिला। और इसे 26.1.0 अपग्रेड करें।


यह WAI है। NestedScrollView अपने बच्चों को कल्पना "अनिर्दिष्ट" के साथ मापता है। बच्चा जितना चाहे उतना बड़ा हो सकता है।

यह अनिवार्य रूप से एनएसवी और आरवी की ऊंचाई के बराबर है। जहां तक ​​आरवी का संबंध है, यह मानता है कि यह पूरी तरह से प्रदर्शित है।

अपने RV को LL से लपेटें और अपने RV को एक ऊँचाई दें। एलएल UNSPECIFIED होने के लिए माप युक्ति को सेट नहीं करेगा, इसलिए RV आपके द्वारा प्रदान की जाने वाली DP की सही ऊँचाई के भीतर सही ढंग से स्क्रॉल करेगा।

इस पद्धति का एकमात्र नकारात्मक पहलू यह है कि आप अपने आरवी पर एक मैच अभिभावक नहीं कर पाएंगे।


  <android.support.v4.widget.NestedScrollView
    android:id="@+id/nestedScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:overScrollMode="never">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>
 </android.support.v4.widget.NestedScrollView>

कभी-कभी उपयोगी होगा। लेकिन यह सभी समय के लिए उचित नहीं है। लेकिन यह पुनर्नवीनीकरण दृश्य में रीसाइक्लिंग सुविधा को अक्षम करता है।

विकल्प:

Recycler दृश्य के साथ CollapsiveToolbarLayout का प्रयास करें। अन्य विचारों को कोलैप्सिव टॉलबार लेआउट में रखें।







android-nestedscrollview