android - not - Problemas de NestedScrollView y RecyclerView, ¿cómo separarlos?
scroll recyclerview (1)
No estoy seguro de cómo implementar esto .. Quiero usar:
- Collapse de la barra de herramientas
- diseño "normal" (NestedScrollView)
- RecyclerView
- y navegue por NavigationDrawer (para que los diseños se unan en mi activity_main.xml)
Los problemas surgen cuando intento usar RecyclerView, debido a NestedScrollView (sí, la regla "no coloque varios scrollables juntos" es verdad) ...
Pero, ¿cómo lograr esto? ¿Existe la posibilidad de mantener los diseños separados de alguna manera?
Información : estoy reemplazando el contenido de la aplicación en FrameLayout (ver la sección central).
¿Sería una solución adecuada insertar múltiples NestedScrollViews (en cada Fragmento uno, que debería ser desplazable)?
Aquí está mi diseño principal:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.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:fitsSystemWindows="false"
android:background="@color/main_frame"
>
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="@color/colorPrimary"
app:expandedTitleMarginBottom="32dp"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
>
<ImageView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
/>
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_overlay"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/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_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar"
>
</FrameLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:background="@color/colorPrimaryNavDrawer"
app:headerLayout="@layout/nav_drawer_header"
app:menu="@menu/nav_drawer_items"
/>
Gracias por adelantado.
La mejor forma de lograr esto es usar solo un RecyclerView
con un adaptador que maneje diferentes tipos de vistas. Para la primera posición del adaptador, el elemento de la lista será su contenido fijo una vez en NestedScrollView
, y para otras posiciones lo que quiere usar es los elementos de RecyclerView
de su solución actual.