Как заставить AppBarLayout полностью исчезнуть с помощью windowTranslucentStatus, установленного в true

Я разрабатываю приложение для Android, используя новую библиотеку дизайна. Я хотел бы создать аналогичный эффект прокрутки, который используется в новом приложении 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> 

Это было примерно так же близко, как я мог получить с координаторомLayout (просто играя с полями на панели инструментов) … не достаточно близко 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). Надеюсь, поможет.

Используйте общую схему AppBarLayout, которая исходит из шаблона приложения при создании Android-проекта в Android Studio. Всего несколько изменений в XML-макете и Java-коде:

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; } }); 

Добавьте fitsSystemWindows = "true" для вашего AppBarLayout и CoordinatorLayout.