LoginSignup
3
0

More than 3 years have passed since last update.

ステータスバーの透過方法

Posted at

ステータスバーの透過方法

ステータスバーの透過方法で躓いたので備忘録として残しておきます
早速ですが記述しなければいけないのは以下の二つのみです

styles.xml
 <item name="android:statusBarColor">@android:color/transparent</item>
MainActivity.kt
 window.apply {
            decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
        }

スタイルに書くのは透明色指定のみで大丈夫です
ここで

styles.xml
<style name="android:windowTranslucentStatus">true</item>

と定義してしまうと完全透明ではなく半透明になってしまうので気を付けましょう
次はMainActivityの処理です
他サイトだと

MainActivity.kt
        findViewById<View?>(R.id.content)?.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE

と定義していますが自分ではこれで透過された判定になりませんでした

MainActivity.kt
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

これはステータスバーが透過された場合にビューが崩れてしまわないように設定しているものです

MainActivity.kt
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

こちらはステータスバーの文字色を変更する役目を持っています
デフォルトは白色ですがこのコードを挿入してあげると濃いグレーになります

最後に

自分が詰まっているときに検索をかけていたところ様々なところで詰まっている方を見かけたので参考程度になると嬉しいです
ナビゲーションバー等の透過方法が気になる方がいる場合はそちらも書いていこうと思います

3
0
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
3
0