Pregunta Recyclerview dentro del desplazamiento Desplazamiento anotado de desplazamiento, pero no se desplaza rápidamente como la vista Recycler normal o la vista de desplazamiento anidada


estoy usando RecyclerView dentro NestedScrollView y funciona. Pero cuando uso RecyclerView dentro LinearLayout o algo así, se desplaza a diferentes velocidades dependiendo del gesto. El desplazamiento escucha el gesto y si solo se desliza un poco, se desplaza un poco, mientras que si me muevo muy rápido, se desplaza realmente rápido. Ahora mi problema es que RecyclerView dentro NestedScrollView ciertamente scroll pero scroll rápido no funciona. Sin embargo, me deslizo rápido o lento, RecyclerView o NestedScrollView solo deslícese un poco.

¿Cómo puedo hacer que mi NestedScrollView o RecyclerView dentro de ese rollo de vista de desplazamiento en varias velocidades?


73
2018-05-18 13:54


origen


Respuestas:


tratar

recyclerView.setNestedScrollingEnabled(false);

223
2018-05-20 03:50



Por defecto setNestedScrollingEnabled funciona solo después de API-21.

Puedes usar ViewCompat.setNestedScrollingEnabled(recyclerView, false); para deshabilitar el desplazamiento anidado antes y después de API-21 (Lollipop). Enlace a la documentación.

¡Espero que esto ayude!


42
2018-04-17 11:00



Estaba trabajando en Android 16 donde no era posible usar el método setNestedSCrollEnabled,

Lo que termino haciendo para evitar que RecyclerView maneje Scrolls.

Al igual que en LinerLayoutManager hice canScrollHorizontally, canScrollVertically para devolver falso de forma predeterminada.

myRecyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false){
            @Override
            public boolean canScrollHorizontally() {
                return false;
            }

            @Override
            public boolean canScrollVertically() {
                return false;
            }
        });

16
2018-02-07 17:52



Después de varias iteraciones, se me ocurrió una solución.

  1. Si está utilizando RecyclerView, entonces:

    recyclerView.setNestedScrollingEnabled(false);
    
  2. Si está utilizando LinearLayout dentro de NestedScrollingView, tome LinearLayout dentro de un ScrollView normal y luego configure su desplazamiento a

    scrollView.setNestedScrollingEnabled(false);
    

3
2018-05-23 07:29



Puede usar ScrollView con la clase ExtendRecyclerView que anula el método onMeasure. ¡Funciona para mi!

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

0
2018-06-24 09:48



recyclerView.setNestedScrollingEnabled(false);

A veces será útil. Pero no es aconsejable para todos los tiempos. Porque deshabilita la función de reciclaje de vista en la vista de recylcer.

Alternativas:

Pruebe CollapsiveToolbarLayout con la vista de Recycler. poner otras vistas en el diseño collapsiveTollbar.


0
2017-11-16 07:13



También conocí este problema. Y actualiza a 26.1.0 arreglalo.


0
2018-05-23 02:21



Esto es WAI. El NestedScrollView mide sus hijos con la especificación "Unspecified". El niño también puede crecer tanto como quiera.

Esto esencialmente iguala la altura de NSV y RV. Por lo que respecta al RV, cree que se muestra completamente.

Envuelve tu RV con una LL y dale una altura a tu RV. La LL no establecería que la especificación de la medida no esté ESPECIFICADA, de modo que la RV se desplazaría correctamente dentro de su altura establecida de cualquier DP que usted proporcione.

El único inconveniente de este método es que no podrás hacer un padre de partido en tu RV.


-2
2018-05-06 09:36



Debe envolver la vista de reciclador en cualquier diseño como LinearLayout y establecer el tamaño de RecyclerView en constante, como 800dp. Esto permitirá que la vista suave de desplazamiento y reciclaje siga siendo vistas de reciclado durante el desplazamiento.

<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>


-4
2017-10-03 09:55