使用CoordinatorLayout隐藏工具栏,但在片段上使用RecyclerView

我有两个选项卡的活动。 每个选项卡都包含一个带有SwipeRefreshLayoutRecyclerView的片段。

在Activity中,我有一个带有AppBarLayout (带有ToolbarTabLayout )和ViewPager

截图

现在,我想实现的是:当用户滚动片段时,工具栏,而不是标签,隐藏,就像在Play商店。

在我通过互联网阅读的例子中,布局非常简单:在同一个xml中的CoordinatorLayoutRecyclerViewToolbar

然后,他们只是写:

 <android.support.v7.widget.RecyclerView android:id="@+id/rvToDoList" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> 

所以,我不知道该怎么做。

我的XML是如下:

活动布局是:

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main_drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <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.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/color_primary" app:layout_scrollFlags="scroll|enterAlways"/> <android.support.design.widget.TabLayout android:id="@+id/activity_main_tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@color/color_text_primary" app:tabMode="fixed" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/activity_main_tabs_pager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> <ListView android:id="@+id/activity_main_nav_drawer_list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/color_primary" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="5dp" android:overScrollMode="never" android:smoothScrollbar="true" /> </android.support.v4.widget.DrawerLayout> 

片段是:

 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_coupons_swipe_refresh_view" android:layout_width="match_parent" android:layout_height="match_parent"> <com.github.yasevich.endlessrecyclerview.EndlessRecyclerView android:id="@+id/fragment_coupons_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </android.support.v4.widget.SwipeRefreshLayout> 

提前致谢。

Solutions Collecting From Web of "使用CoordinatorLayout隐藏工具栏,但在片段上使用RecyclerView"

男人,我面临同样的问题。 问题不在代码中。 我敢打赌,你正在使用构build工具和库的旧版本。 更新到最新:

  • buildToolsVersion“22.0.1”
  • com.android.support:appcompat-v7:22.1.1
  • com.android.support:recyclerview-v7:22.2.0

在我的情况下,这就像一个魅力! 祝你好运!

对于像我这样的在片段中使用Scrollview的人,我build议你使用android.support.v4.widget.NestedScrollView。 这样,工具栏和/或TabLayout将与滚动查看一起滚动