折叠工具栏 - 状态栏下的工具栏

Jar*_*lik 5 android android-coordinatorlayout android-collapsingtoolbarlayout

我最近碰到了协调器布局的问题.当我尝试创建简单的折叠工具栏布局时,如下例所示,工具栏apears位于状态栏下(在preLolipop设备上,一切正常,因为app不在状态栏下绘制).

状态栏下的工具栏(参见后退箭头)

我的Activity布局的代码片段:

<?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:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:id="@+id/imageCalculationDetail"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:background="@drawable/ic_dummy_calculation"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/transparent"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:clipToPadding="false"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <include layout="@layout/container"/>

    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

My Styles(仅限v21),其中BaseAppTheme父级是Theme.AppCompat.Light.NoActionBar:

<style name="AppTheme" parent="BaseAppTheme">
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:colorAccent">@color/colorPrimary</item>
        <item name="android:colorButtonNormal">@color/button_state_list</item>
        <item name="android:statusBarColor">@color/transparent</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

Jar*_*lik 5

好吧,我弄清楚了,问题是我有

<item name="android:fitsSystemWindows">true</item>
Run Code Online (Sandbox Code Playgroud)

在我的工具栏中,BaseAppTheme的风格(对于其他行为,一切正常,对于折叠工具栏而不是半透明状态栏).设定后

android:fitsSystemWindows="false"
Run Code Online (Sandbox Code Playgroud)

到我的工具栏,一切正常.


Jos*_*los -1

应用断点以将 marginTop 包含到棒棒糖设备或更高版本的工具栏上。

值/dimens.xml

<dimen name="toolbar_margin_top">0dp</dimen>
Run Code Online (Sandbox Code Playgroud)

值-v21/dimens.xml

<dimen name="toolbar_margin_top">24dp</dimen>
Run Code Online (Sandbox Code Playgroud)

然后在你的布局中:

<android.support.v7.widget.Toolbar
  .....
  android:layout_marginTop="@dimen/toolbar_margin_top"
Run Code Online (Sandbox Code Playgroud)