AppBarLayout,NestedScrollView,FrameLayout,这是怎么回事?

我的活动中有以下代码:

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

我想在框架布局(“main_content”ID布局)里面添加一个RecyclerView的片段,但在这种情况下,这是行不通的。

问题是什么? 你知道一些例子吗?

Solutions Collecting From Web of "AppBarLayout,NestedScrollView,FrameLayout,这是怎么回事?"

折叠工具栏应该有一个滚动目标。 当您更换内容时,您应该更换滚动容器,而不是嵌套它们。 例如:

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

然后你可以打电话给:

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

PageRecycle有一个RecyclerView(或NestedScrollView)作为根节点。 这将确保协调器布局具有单个滚动视图作为目标。