我一直在研究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;
}
但每次应用程序运行时,它总是会给出屏幕高度的结果,就像导航栏可见一样,尽管我已经隐藏了导航栏。我已经上网,没有找到任何密切的答案。我很感激帮助。
答案 0 :(得分:0)
如果"已经隐藏了导航栏",你的意思是你先前在onCreate()中设置了沉浸式模式,那么我认为你可能只需要在活动结束后再进行检查。有机会激活模式。尝试将支票移入onResume(),如果不起作用,请在几秒钟后再尝试检查。
我发现沉浸式模式设置非常难以使用,具体取决于您支持的API级别,尤其是您在亚马逊的建设时。