Android 我如何知道是否有导航栏?

Android 我如何知道是否有导航栏?,android,android-layout,android-activity,Android,Android Layout,Android Activity,导航栏以透明的方式绘制在我的活动顶部,以便可以通过导航栏查看我的内容。这很好,我想要这样。但是,有两种类型的设备: 具有透明导航栏的设备 带有硬件导航栏的设备(如一些三星型号),其中的内容当然不会绘制在导航栏后面 我如何知道运行我的应用程序的设备属于上述类型1?例如,我如何通过编程方式获得“我的活动顶部是否有半透明的导航栏?”的答案?您可以尝试以下方法: boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey

导航栏以透明的方式绘制在我的活动顶部,以便可以通过导航栏查看我的内容。这很好,我想要这样。但是,有两种类型的设备:

  • 具有透明导航栏的设备
  • 带有硬件导航栏的设备(如一些三星型号),其中的内容当然不会绘制在导航栏后面

  • 我如何知道运行我的应用程序的设备属于上述类型1?例如,我如何通过编程方式获得“我的活动顶部是否有半透明的导航栏?”的答案?

    您可以尝试以下方法:

    boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
    boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
    
    if(!hasMenuKey && !hasBackKey) 
    {
        // Do whatever you need to do, this device has a navigation bar
    }