简体   繁体   中英

Dark-text transparent status bar with opaque navigation bar

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 :

  1. Transparent status bar (Not hiding it!)
  2. Dark-text status bar
  3. 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?!

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:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM