NestedScrollView and RecyclerView issues, how to separate them?

故事扮演 提交于 2019-12-13 02:33:28

问题


I'm not sure how to implement this.. I want to use:

  1. Collapsing Toolbar
  2. "normal" Layout (NestedScrollView)
  3. RecyclerView
  4. and navigate by the NavigationDrawer (so the layouts come together in my activity_main.xml)

The issues comes up when I try to use the RecyclerView - because of the NestedScrollView (yeah, the rule "don't place multiple scrollables together" is true)...

But how to achieve this? Is there a possibility to keep the layouts separated in some way?

Info: I am replacing the content of the app in the FrameLayout (see middle section).

Would it be a proper solution to insert multiple NestedScrollViews (in each Fragment one, which should be scrollable)?

Here is my main layout:

<?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"
    />

Thanks in advance.


回答1:


Best way to achieve this is to use only a RecyclerView with an adapter handling different view types. For the first adapter position, the list item will be your fixed content once in NestedScrollView, and for other positions what you want to use is the RecyclerView items from your current solution.



来源:https://stackoverflow.com/questions/34491137/nestedscrollview-and-recyclerview-issues-how-to-separate-them

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!