Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查导航栏的可见性_Java_Android_Android Studio - Fatal编程技术网

Java 检查导航栏的可见性

Java 检查导航栏的可见性,java,android,android-studio,Java,Android,Android Studio,我一直在从事Android应用程序项目,并尝试在onCreate()时检测导航栏(屏幕上的导航栏)的可见性,以确定屏幕高度,mScreenHeight。简而言之,这个想法是如何检查导航栏在屏幕上是否可见。 到目前为止,我使用了以下代码: Point screenFull = new Point() , screenNavBar = new Point(); getActivity().getWindowManager().getDefaultDisplay().getRealSize(scree

我一直在从事Android应用程序项目,并尝试在onCreate()时检测导航栏(屏幕上的导航栏)的可见性,以确定屏幕高度,
mScreenHeight
。简而言之,这个想法是如何检查导航栏在屏幕上是否可见。 到目前为止,我使用了以下代码:

Point screenFull = new Point() , screenNavBar = new Point();
getActivity().getWindowManager().getDefaultDisplay().getRealSize(screenFull);
getActivity().getWindowManager().getDefaultDisplay().getSize(screenNavBar);

View decorView = getActivity().getWindow().getDecorView();
if ((decorView.getSystemUiVisibility() & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0 ) {
    mScreenHeight = screenNavBar.y;
} else {
    mScreenHeight = screenFull.y;
}
但每次应用程序运行时,它总是给出屏幕高度的结果,就像导航栏是可见的一样,尽管我已经隐藏了导航栏。我已经上网了,没有找到任何确切的答案。非常感谢您的帮助。

如果“已隐藏导航栏”,您的意思是您以前在onCreate()中设置了沉浸式模式,那么我认为您可能只需要在活动有机会激活模式后执行检查。尝试将检查移动到onResume(),如果这不起作用,请在几秒钟后尝试检查

我发现沉浸式模式设置很难使用,这取决于您支持的API级别,尤其是如果您的建筑也与Amazon兼容的话