AppBarLayout, NestedScrollView, FrameLayout, ¿cuál es el trato?

Tengo el siguiente código en mi actividad:

<android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="160dp"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <FrameLayout android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </android.support.v4.widget.NestedScrollView> 

Quiero añadir un fragmento con un RecyclerView dentro, en el diseño del marco ("main_content" id layout), pero en este caso, esto no funciona.

¿Cuál es el problema? ¿Conoces algún ejemplo?

La barra de herramientas de contracción debe tener un único destino de desplazamiento. Cuando reemplace el contenido, debe reemplazar el contenedor de desplazamiento, no anidarlos. Por ejemplo:

 <android.support.design.widget.CoordinatorLayout android:id="@+id/coordinatorLayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/main_container" android:background="@color/colorPrimary" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- Your content here --> </LinearLayout> </android.support.v4.widget.NestedScrollView> </FrameLayout> <include layout="@layout/toolbar"/> </android.support.design.widget.CoordinatorLayout> 

A continuación, puede llamar a:

 FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); PageRecycle recycle = PageRecycle.create(); ft.replace(R.id.main_container, recycle); ft.commit(); 

Donde PageRecycle tiene un RecyclerView (o NestedScrollView) como el nodo raíz. Esto asegurará que el diseño del coordinador tenga una sola vista de desplazamiento para utilizarla como destino.

  • Android - java.lang.IndexOutOfBoundsException: Posición de artículo no válida 0 (0). Número de artículos: 0
  • Adaptador de Android "java.lang.IndexOutOfBoundsException: Índice no válido 4, tamaño es 4"
  • NullPointerException en la animación de dissapearence de RecyclerView desde soporte v.23.2.0
  • Reciclado horizontal con bordes de decoloración
  • ¿Cómo puedo dibujar ItemDecoration correctamente cuando el elemento RecyclerView está animando su altura?
  • ¿Cómo se utiliza un OnClickListener en una vista de reciclador?
  • Recyclerview exterior no recibe eventos de desplazamiento de Recyclerview interno
  • Android RecyclerView.Adapter onCreateViewHolder () trabajando
  • ¿Es posible tener el último elemento en un RecyclerView para ser acoplado a la parte inferior si no hay necesidad de desplazarse?
  • Android - cómo capturar la acción Drop de ItemTouchHelper que se utiliza con RecyclerView
  • Diálogo de alerta personalizado con RecyclerView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.