3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?