StatusBar や AppBar を透過したいなと思ったときに毎回調べてはハマったりしているので自分用にメモとして残したいと思います。
前提
~.NoActionBar
を継承したスタイルはどこかで設定して自前で ActionBar を実装している前提です。
StatusBar
AndroidManifest にある該当の Activity の theme
に以下を設定します。
<style name="TranslucentStatusBar">
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
v23 以降はコレを設定します。
<style name="TranslucentStatusBar">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">true</item>
</style>
Y.A.M の 雑記帳: StatusBar 透明化の正しい方法 にとても詳しく書かれています。ちゃんと理解したい人はみてください。
AppBar
AppBarLayout
の theme
として以下を設定します。
<style name="TranslucentAppBar">
<item name="colorPrimary">@android:color/transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
</style>
おそらく elevation
が残るので、レイアウトに直接 app:elevaiton="0dp"
を設定します。
戻るボタン
Toolbar
に以下を theme
として設定します。もしかしたら他にいい方法あるかもしれないので知っている人は教えてください
<style name="ToolBar">
<item name="navigationIcon">@drawable/ic_close_white</item>
</style>