如何使AppBarLayout完全消失与windowTranslucentStatus设置为true

我正在开发一个使用新devise库的Android应用程序。 我想创build一个类似的滚动效果,用于新的Google相册应用程序 。 我希望AppBarLayout完全滚动屏幕,以便回滚视图在状态栏后面滚动。

我已经在应用程序的主题中将windowTranslucentStatus设置为true。 以下是主要活动的xml:

<?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.support.v7.widget.RecyclerView android:id="@+id/recyclerView" 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.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> </android.support.design.widget.CoordinatorLayout> 

这是滚动时的样子: 工具栏不会完全消失

工具栏并不完全消失。

感谢帮助!

Solutions Collecting From Web of "如何使AppBarLayout完全消失与windowTranslucentStatus设置为true"

这是我在我的应用程序中使用的

 <android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="@dimen/app_bar_height" android:fitsSystemWindows="true" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlwaysCollapsed"> <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/AppTheme.PopupOverlay" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> 

这跟我可以用CoordinatorLayout获得的距离近一点(只是玩着工具栏上的边距)……不够紧密imo:

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:paddingTop="25dp" android:layout_width="match_parent" android:layout_height="81dp" android:layout_marginTop="-28dp" android:background="#00ffffff" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:background="#ffffff" android:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="16dp" android:src="@drawable/ic_headphones_white_24dp" /> </android.support.design.widget.CoordinatorLayout> 

我认为手动操作会更容易

你有什么想法或进展?

在我的情况下,我将fitSystemWindows =“false”添加到了CoordinatorLayout中,并将fitSystemWindows =“true”添加到了它的子元素中 – 在您的情况下添加到了RecyclerView中。 在NavigationView,DrawerLayout,AppBarLayout和工具栏的“真”。 我尝试了不同的价值观,然后在我的情况下打破了。 Android 5.1.1和最新的支持库(23.0.1)。 希望能帮助到你。

在Android Studio中创buildAndroid项目时,使用来自应用模板的AppBarLayout的常见模式。 XML布局和Java代码只有很less的变化:

XML布局:

 <android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" > <FrameLayout android:id="@+id/toolbar_container" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|enterAlways" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/AppTheme.PopupOverlay" /> </FrameLayout> </android.support.design.widget.AppBarLayout> 

Java代码:

 ViewCompat.setOnApplyWindowInsetsListener(toolbar, new OnApplyWindowInsetsListener() { @Override public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) { toolbarContainerLayout.setPadding(0, insets.getSystemWindowInsetTop(), 0, 0); return insets; } }); 

为你的AppBarLayout和CoordinatorLayout添加fitsSystemWindows =“true”。