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