LoginSignup
15
17

More than 5 years have passed since last update.

NavigationViewでKitKatでもStatusBarを透過させる

Posted at

NavigationView なしの場合

support.v4.widget.DrawerLayout で Navigation 部分を ListView などで実装するパターンのことです。

この場合、以下のような設定で KitKat で StatusBar を colorPrimaryDark に指定した色に出来ます。

values-v19/styles.xml

  <style name="AppTheme"
      parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">@color/brand_primary</item>
    <item name="colorPrimaryDark">@color/brand_primary_dark</item>
    <item name="colorAccent">@color/brand_accent</item>

    <item name="android:windowTranslucentStatus">true</item>

  </style>

NavigationView ありの場合

support.v4.widget.DrawerLayout で Navigation 部分を support.design.widget.NavigationView で実装するパターンのことです。

この場合、NavigationView なしの場合に設定したものに加え、以下のような設定で KitKat で StatusBar を colorPrimaryDark で指定した色に出来ます。

必要なのは、 android:fitsSystemWindows="false" の記述でした。これが無いと単に半透明にしかなりません。

activity_main.xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    >
  ...

  <android.support.design.widget.NavigationView
      android:layout_gravity="start"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:fitsSystemWindows="false"
      app:headerLayout="@layout/header_layout"
      app:menu="@menu/navi_menu"
    />

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

参考にしたコード

Navigation-Drawer-Android-Design-Support-Library / @Dahnark

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17