9

我正在使用新的设计库开发一个 Android 应用程序。我想创建一个类似的滚动效果,用于新的Google Photos 应用。我希望 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>

这是向下滚动时的样子: 工具栏没有完全消失

工具栏并没有完全消失。

感谢帮助!

4

5 回答 5

1

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

<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>
于 2016-02-03T14:51:41.390 回答
0

这大约是我使用 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>

我认为手动操作会更容易...

你有什么想法或进展吗?

于 2015-06-26T21:31:47.830 回答
0

在 Android Studio 中创建 Android 项目时,使用来自应用模板的 AppBarLayout 的通用模式。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;
        }
    });
于 2016-03-31T07:47:54.433 回答
0

在我的情况下,我将 fitSystemWindows="false" 添加到 CoordinatorLayout 和 fitSystemWindows="true" 到它的孩子 - 在你的情况下添加到 RecyclerView。在 NavigationView、DrawerLayout、AppBarLayout 和 Toolbar 上它是“true”。我尝试了不同的值,然后在我的情况下出现了问题。Android 5.1.1 和最新的支持库 (23.0.1)。希望能帮助到你。

于 2015-10-06T14:32:13.390 回答
-1

为您的 AppBarLayout 和 CoordinatorLayout 添加 fitSystemWindows="true"。


于 2015-06-27T05:40:02.543 回答