工具栏与半透明状态栏重叠

时间:2017-02-08 07:05:47

标签: android android-toolbar android-statusbar

在一项活动中,我有一个工具栏,其布局代码为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.aminiam.moviekade.fragment.AllReviewFragment">

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

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

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

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recReview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar"/>

</LinearLayout>

我想在我的应用中设置透明状态栏,当我将<item name="android:windowTranslucentStatus">true</item>添加到活动主题时,工具栏将重叠状态栏。

values-v21 style.xml:

<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/windowBackground</item>
</style>

<style name="TransparentStatusBar" parent="AppTheme">
    <item name="android:windowTranslucentStatus">true</item>
</style>

我测试了Stackoverflow中的所有答案,但他们无法解决问题。

enter image description here

3 个答案:

答案 0 :(得分:1)

添加android:fitsSystemWindows =&#34; true&#34;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:fitsSystemWindows="true"
        tools:context="com.aminiam.moviekade.fragment.AllReviewFragment">

答案 1 :(得分:0)

从appbarlayout删除android:fitsSystemWindows =“true”。

答案 2 :(得分:0)

对我有用的一个方便的技巧是在工具栏元素中添加顶部填充。

<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:elevation="4dp"
            android:paddingTop="24dp" //status bar height
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:title="Home">