2017-09-13 171 views
4

在我的应用程序中,我正在使用windowManager.getDefaultDisplay()来确定屏幕大小。在Galaxy S8上获取正确的屏幕显示大小

使用新的三星S8导航栏,可以使用左下角的“点”来显示和隐藏导航条,我可以获得与显示或隐藏导航栏相同的显示尺寸。它总是返回显示大小,就像显示导航栏一样 - 当导航栏隐藏时我希望获得1080x2220,但总是获得1080x2076。

有没有什么办法可以通过编程方式区分个案并获得正确的屏幕尺寸,以便我可以正确显示我的应用程序?

+0

我不是太熟悉的情况,但有没有办法让导航栏(例如'getNavigationBar()'),并检查是否'ISVISIBLE()'或不?如果是这样,你能得到导航栏的高度并将其添加到屏幕上吗?或者,无论能见度如何,导航栏区域都以某种方式“受限制”? – ray

+0

您是否尝试过使用[Immersive Full-Screen Mode](https://developer.android.com/training/system-ui/immersive.html)? – Eselfar

回答

1

我有同样的问题,因为你,我找到了解决办法是测量内容视图的高度:

findViewById(android.R.id.content).getHeight() 

希望它会帮助你。

检查这里更多detailes约android.R.id.content