半透明导航栏Lollipop(fitsSystemWindows ="true")

Dah*_*ark 6 transparency android uinavigationbar navigation-drawer

我试图通过fitsSystemWindows ="true"获得半透明导航栏.它在kitkat中运行良好,半透明导航栏使用android:clipToPadding ="false"显示内容.但Lollipop导航栏不显示内容.

图像: 导航抽屉关闭

这是xml:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:clipToPadding="false"
tools:context=".MainActivity">

<!-- The main content view -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- Your main content -->

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="8dp"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    <Button
        android:layout_marginTop="24dp"
        android:background="@color/md_red_500"
        android:layout_gravity="center"
        android:layout_width="200dp"
        android:layout_height="800dp" />

</LinearLayout>

<!-- The navigation drawer -->
<com.videum.javier.myapplicationeliminmar.ScrimInsetsFrameLayout
    android:clipToPadding="false"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/scrimInsetsFrameLayout"
    android:layout_width="320dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@android:color/white"
    android:elevation="10dp"
    android:fitsSystemWindows="true"
    app:insetForeground="#4000">

    <!-- Your drawer content -->

    <Button
        android:layout_marginTop="24dp"
        android:background="@color/md_red_500"
        android:layout_gravity="center"
        android:layout_width="200dp"
        android:layout_height="800dp" />

</com.videum.javier.myapplicationeliminmar.ScrimInsetsFrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是风格(相同的v19和v21):

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/md_red_500</item>
    <item name="colorPrimaryDark">@color/md_red_700</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

java文件只有工具栏支持.

我需要fitSystemWindows永远保持真实.

导航抽屉在两个版本中都能正常工作.例如,如果我在其中添加一个按钮:导航抽屉打开

yww*_*ynm -1

不要在您的 DrawerLayout 中设置 FitsSystemWindow="true"。默认情况下,系统窗口是状态栏下方、导航栏上方的窗口,即使您设置了windosTransclucentStatus/Navigation="true",这可能会让您认为“现在窗口是全屏的”。如果您适合此窗口,内容当然不会扩展以适合整个屏幕。