Le comportement de Scroll dans le RecyclerView imbriqué avec le scroll horizontal

je dois créer vertical RecyclerView avec imbriqué horizontal RecyclerView dans chaque article. Tout est dans CoordinatorLayout . Quand je fais défiler en tapant à L'extérieur de la barre D'outils emboîtée RecyclerView se cache, mais quand je fais défiler Parent Recycler en tapotant sur emboîtée une barre d'outils reste.

Toute aide serait appréciée.

Voici mes mises en page xml:

main_activity.xml:

<android.support.design.widget.CoordinatorLayout 
   ...>

<FrameLayout
    android:id="@+id/fragment_frame"
    ...
    android:fitsSystemWindows="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.AppBarLayout
    ...
    android:fitsSystemWindows="true"
    android:id="@+id/appbar_layout">

        <include layout="@layout/toolbar"/>

</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

Voici barre.xml:

<android.support.v7.widget.Toolbar
    android:id="@+id/main_toolbar"
    ...
    android:fitsSystemWindows="true"
    app:layout_scrollFlags="scroll|enterAlways">

    <TextView .../>

</android.support.v7.widget.Toolbar>

fragment.xml:

<android.support.v7.widget.RecyclerView
    ...
    android:scrollbars="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

et recycler_view_item.xml:

<RelativeLayout ...>

    <TextView .../>

    <!-- fixme(CullyCross) fix bug with hiding toolbar -->
    <android.support.v7.widget.RecyclerView
        ...
        android:scrollbars="horizontal"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        />

</RelativeLayout>

Merci,

Anton

22
demandé sur Anton Shkurenko 2015-09-11 17:00:30

3 réponses

Comme demandé voici la solution que j'ai trouvé assez bon jusqu'à présent:

dans mon cas, j'ai un nestedScrollView avec 4 RecyclerView s réglé pour faire défiler horizontalement à l'intérieur. Pour chacun de ces RecyclerView j'ai fait ce programme:

restaurantsRecylerView.setHasFixedSize(true); 
restaurantsRecylerView.setNestedScrollingEnabled(false);

vous ne voulez probablement pas de fixedSize, pas sûr si cela va faire une différence, ma liste est toujours 25 donc je peux l'utiliser pour la performance. Après avoir fait ceci je peux faire défiler sans problèmes même quand je touche sur la recyclerViews

j'Espère que ça aide

46
répondu Lancelot 2016-06-14 11:48:34

Essayez avec RecyclerView à l'intérieur android.soutien.v4.widget.NestedScrollView .

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

<!-- Set other views of your Layout -->

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

aussi essayer avec différent layout_scrollFlags dans Toolbar et

RecylerView.setNestedScrollingEnabled(false); // set it true or false as per requirement
19
répondu Priyank Patel 2015-12-18 11:50:32

nous pouvons y parvenir en XML

android:nestedScrollingEnabled="false"
0
répondu pratham kesarkar 2018-03-07 13:56:52