我需要优化我的 Android 应用,以便在 Essential Phone 等带有刘海屏的手机上看起来不错。
这款手机的状态栏高度不同于标准的 25dp 值,因此您无法对该值进行硬编码。
昨天发布的 Android P 开发者预览版包括对刘海屏的支持和一些查询其位置和边界的 API,但对于我的应用程序,我只需要能够从 XML 中获取状态栏高度,而不是使用固定值.
不幸的是,我找不到任何方法从 XML 中获取该值。
有什么办法吗?
谢谢。
最佳答案
我已经found the answer :
推荐的方法是使用 WindowInsets API,如下所示:
view.setOnApplyWindowInsetsListener { v, insets ->
view.height = insets.systemWindowInsetTop // status bar height
insets
}
访问 status_bar_height,因为它是私有(private)资源,因此在未来的 Android 版本中可能会发生变化,因此非常不鼓励。
关于android - 从 XML 动态获取状态栏高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171324/