RecyclerView dentro de CoordinatorLayout, AppBarLayout Asunto de desplazamiento
Tengo este código xml en el fragmento:
<CoordinatorLayout 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:id="@+id/coordinatorLayout" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme" app:elevation="0dp"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="300dp" app:layout_scrollFlags="scroll" android:id="@+id/collapsingToolbarLayout" app:statusBarScrim="@color/bestColor"> <LinearLayout></LinearLayout> <!--this elements hide then appbar is collapsed--> </android.support.design.widget.CollapsingToolbarLayout> <LinearLayout> <ImageButton> android:id="@+id/profile_header_trophies" </ImageButton><!-- this elements like a tab,visible if appbar collapsed--> </LinearLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/profile_recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout>
En clase Java en el conjunto de elementos ClickListener:
- Android: smoothScrollToPosition () no funciona correctamente
- Personalizar RecyclerView LayoutManager no fling (sin problemas)
- RecyclerView no se desplaza como se esperaba
- Android WebView desplazamiento suave
- Mejora de la suavidad de desplazamiento en un ListView de Android
@OnClick(R.id.profile_header_trophies) public void profile_header_trophies_clicked() { if (myProfile != null) { appBarLayout.setExpanded(false, false); if (myProfile.getBests().size() == 0) { profile_recyclerView.smoothScrollToPosition(3); } else { profile_recyclerView.smoothScrollToPosition(2 + 20); } }
Cuando hago clic en ImageButton , mi RecyclerView se desplaza a la posición, todo se ve bien. Pero si pongo el dedo en la sección AppBarLayout (ImageButton) que visible (pegajoso) en la parte superior, y arrastrar hacia abajo tengo un desplazamiento incorrecto. Mi barra de navegación empieza expandida, mientras que mi Reciclador tiene algunos elementos en la parte superior (que están ocultos cuando se desplaza).
Creo que este problema es establecer el comportamiento. Porque si me desplaza reciclador primero, AppBar no empieza a expandir, mientras que Recycler no ricos en la parte superior de los elementos.
Gracias por tus respuestas.
- (Smooth) ScrollToPosition no funciona correctamente con RecyclerView
- SmoothScrollToPosition no funciona?
- Smooth desplazamiento recyclerview android
- Smooth Scroll para GridView
El desplazamiento incorrecto sucede cuando intenta desplazar el contenido en RecyclerView
. Para tener un desplazamiento suave en general, sólo tiene que establecer esto en su RecyclerView
:
recyclerView.setNestedScrollingEnabled(false);
Para hacer esto en el uso de XML:
android:nestedScrollingEnabled="false"