android:windowTranslucentStatus / fitsSystemWindows工具栏大小错误

时间:2018-07-10 01:49:22

标签: android android-layout android-theme

尝试使用半透明的状态栏和工具栏创建一个简单的视图,并且难以使工具栏的行为符合我的期望。该工具栏似乎将fitsSystemWindows bool属性用于其内部项目(标题,溢出菜单),而不是其实际位置。

我可以通过编程获得状态栏的大小并通过添加状态栏高度来调整工具栏的大小,但是我的理解是fitsSystemWindows=true应该这样做。

Lollipop Screenshot

主题

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>
    </style>

布局-注意:我将背景移至AppBarLayout,因为最终目标是在工具栏后面放置背景图像。如果在AppBarLayout或工具栏上定义了背景,则不会改变结果。

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:fitsSystemWindows="true"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Content Here"
        android:gravity="center"/>

</android.support.design.widget.CoordinatorLayout>

只是希望我缺少一件简单的事情,它可以按照我的理解进行工作。添加fitsSystemWindows属性可将标题和溢出菜单下移,但工具栏将由于未移动而被切断。

1 个答案:

答案 0 :(得分:1)

工具栏布局更改为wrap_content的高度似乎可以“解决”问题。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    app:popupTheme="@style/AppTheme.PopupOverlay" />