stefple
stefple

Reputation: 558

Check if translucent navigation is available

How can I check if translucent navigation is available ?

I am currently setting it to translucent with:

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

    translucentNavigation = true; 
    Window w = getWindow();  
    w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 

} 

But since I saw that it gets disabled for some devices (like the N10) and of course it is disabled if hardkeys are present, I'd like to check after setting the FLAG if it is translucent or before if it available at all.

Upvotes: 5

Views: 4403

Answers (1)

jspurlock
jspurlock

Reputation: 1476

On KitKat devices, translucent system bars can be disabled with a framework boolean configuration resource. You can inspect the value of that resource at runtime.

int id = getResources().getIdentifier("config_enableTranslucentDecor", "bool", "android");
if (id == 0) {
    // not on KitKat
} else {
    boolean enabled = getResources().getBoolean(id);
    // enabled = are translucent bars supported on this device
}

Upvotes: 21

Related Questions