sweet_vish
sweet_vish

Reputation: 140

Android Window flag FLAG_TRANSLUCENT_STATUS is deprecated now, How to fix this?

I an trying to update status bar dynamically as below but getting warning that flag FLAG_TRANSLUCENT_STATUS is depricated now, how i can fix this?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        // clear FLAG_TRANSLUCENT_STATUS flag:
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

        // add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        // finally change the color
        getWindow().setStatusBarColor(ContextCompat.getColor(this, color));
}

Upvotes: 4

Views: 6997

Answers (3)

Sniffle Yt
Sniffle Yt

Reputation: 1

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  window.setStatusBarColor(Color.TRANSPARENT);
} else {
  window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}

Upvotes: 0

Artyemlom
Artyemlom

Reputation: 1

if (Build.VERSION.SDK_INT >= 21) {
    Window window = getWindow();
    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(Color.TRANSPARENT);
} else if (Build.VERSION.SDK_INT >= 19) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
    //Virtual keyboard is also transparent
    //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

Upvotes: 0

Ruben Caster
Ruben Caster

Reputation: 290

I spent too much hours to get the proper answer, because i have an error with status bar color as well. I will put the answer here if someone has the same problem.

You need to set the status bar color in transparent as you do in the code using the last build version as "if" statement, thats for sure. But, also, you need to set this layout attribute in the root view as well.

android:fitsSystemWindows="false"

Hope this will help you resolving the status bar error in Android 30.

Upvotes: 2

Related Questions