问题
Wait, it is not a duplicate
A similar question has been asked here, but not addressing dark-text status bar.
What I want to do
I want to achieve 3 things at the same time:
- Transparent status bar (Not hiding it!)
- Dark-text status bar
- Opaque (or black) navigation bar (which does not let activity content inflate underneath it)
What I have tried
The solution
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
can only achieve 1 and 3;
The solution here can only achieve 1 and 2;
And the solution here can only achieve 2 and 3....
The Question
So is there a way to achieve all 1, 2 an 3?!
回答1:
Inside styles.xml
:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:navigationBarColor">@android:color/black</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
In activity's onCreate()
:
override fun onCreate(savedInstanceState: Bundle?) {
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
Will result in this:
来源:https://stackoverflow.com/questions/49296468/dark-text-transparent-status-bar-with-opaque-navigation-bar