Android 11 (API レベル 30) より前の
<item name="android:windowLightStatusBar">true</item>
テーマで設定し、コードでこれを (必要に応じて) 追加で変更していました。
fun setLightStatusBar(){
window?.decorView?.let { it.systemUiVisibility = it.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR }
}
fun setDarkStatusBar(){
window?.decorView?.let { it.systemUiVisibility = it.systemUiVisibility and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv() }
}
ただし、Android-30 では新しい制御方法が追加されています。
fun setLightStatusBar(){
window?.insetsController?.setSystemBarsAppearance(APPEARANCE_LIGHT_STATUS_BARS, APPEARANCE_LIGHT_STATUS_BARS)
}
fun setDarkStatusBar(){
window?.insetsController?.setSystemBarsAppearance(0, APPEARANCE_LIGHT_STATUS_BARS)
}
しかし、私の問題は、これがテーマ セットの値を上書きできないことです。そのため、すべてをスタイルで行うか、すべてをコードで行う必要があります。
私の質問は、これがこのようになることを意図しているのか、それともどこかで何かが欠けているのでしょうか?