检查导航栏的可见性



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

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

但是,每次应用程序运行时,它总是给出屏幕高度的结果,就像可见的Navbar一样,我已经隐藏了Navbar。我已经浏览了互联网,没有找到任何紧密的答案。我感谢帮助。

如果通过"已经隐藏了navbar",则意味着您先前在ongreate()中设置了沉浸式模式有机会激活该模式。尝试将您的支票转移到OnResume(),如果那不起作用,请尝试再检查几秒钟。

我发现沉浸式模式设置非常困难,具体取决于您的API级别,尤其是当您前往亚马逊的建筑物。

最新更新