【问题标题】:Check if translucent navigation is available检查半透明导航是否可用
【发布时间】:2013-11-16 13:29:51
【问题描述】:

如何检查半透明导航是否可用?

我目前将其设置为半透明:

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); 

} 

但由于我看到它在某些设备(如 N10)上被禁用,当然如果存在硬键,它也会被禁用,我想在设置 FLAG 之后检查它是否是半透明的,或者在它是否可用之前检查它是否可用全部。

【问题讨论】:

  • 我正在尝试在 onCreate() 中设置 translucentNavigation。当我添加上面的代码时,Android Studio 说 - 无法解析符号。你能告诉我我错过了什么吗?
  • 我使用以下代码解决了这个问题。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ 窗口 w = getWindow(); w.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); }

标签: android


【解决方案1】:

在 KitKat 设备上,可以使用框架布尔配置资源禁用半透明系统栏。您可以在运行时检查该资源的值。

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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    相关资源
    最近更新 更多