android - नेस्टेड स्क्रॉलव्यू+रीसाइक्लिव्यू, अजीब ऑटोसक्रोल व्यवहार




android-recyclerview android-nestedscrollview (2)

जैसा कि हर्षित ने कहा कि एंड्रॉइड ने नेस्टेड रीसायकल वाइव को स्वचालित रूप से दोबारा शुरू करने से रोका है

आप इस विशेषता को अपने रैखिक लेआउट में जोड़ सकते हैं आपके स्क्रॉल-वीव के रैखिक लेआउट सीधा बच्चे

android:descendantFocusability="blocksDescendants"

यह मेरी मदद की

एक दृश्य पेजर में मेरे पास कई टुकड़े हैं, इनमें से एक नेस्टेड स्क्रॉलएव्यू का उपयोग हेडर और रीसायकल वाइव के साथ करता है:

<android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/scrollview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.m360.android.fragment.Members.MemberDetailsFragment">

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

        <header/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipToPadding="false"
            android:paddingTop="0dp" />

    </LinearLayout>

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

टैग "हेडर" एक जटिल लेआउट का प्रतिनिधित्व करता है जिसे मैं यहां पोस्ट नहीं करना चाहता था क्योंकि यह कोड बहुत फैलाता है

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

क्या कारणों पर कोई विचार? मैं अपने एडाप्टर में एक प्रकार का उपयोग नहीं करना चाहता, अगर मैं इसे से बच सकूं


हमारे पास एक समान समस्या है हमारे पास एक ऊर्ध्वाधर RecyclerView इस ऊर्ध्वाधर RecyclerView प्रत्येक आइटम में एक क्षैतिज RecyclerView , जैसे एंड्रॉइड टीवी ऐप

जब हमने 23.4.0 से 24.0.0 तक समर्थन लिब्स को उन्नत किया तो स्वचालित स्क्रॉल अचानक दिखाई दिया। विशेष रूप से, जब हम कोई Activity खोलते हैं और हम फिर वापस जाते हैं, तो ऊर्ध्वाधर RecyclerView स्क्रॉल करते हैं ताकि वर्तमान क्षैतिज RecyclerView पंक्ति काट नहीं हो और पंक्ति पूरी तरह से प्रदर्शित हो।

android:descendantFocusability="blocksDescendants" जोड़ना android:descendantFocusability="blocksDescendants" समस्या को ठीक करता है

हालांकि, मुझे एक और हल मिला है, जो काम करता है। हमारे मामले में ऊर्ध्वाधर RecyclerView एक FrameLayout अंदर स्थित है। अगर मैं android:focusableInTouchMode="true" जोड़ता हूं android:focusableInTouchMode="true" इस FrameLayout , समस्या दूर हो जाती है।

यहां बताया गया एक तीसरा समाधान भी है , जिसमें मूल रूप से बच्चे / इनर RecyclerView setFocusable(false) पर setFocusable(false) को बुलाते हैं। मैंने यह कोशिश नहीं की है

वैसे, एओएसपी पर एक खुला मुद्दा है





android-nestedscrollview