android - 从 XML 动态获取状态栏高度

标签 android android-layout

我需要优化我的 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/

相关文章:

android - 在维度中分配包装内容

android - 我需要在用户进入布局时显示 "drawerlayout"

android - 我们可以在 android 键盘中同时拥有 Go 和 Next 按钮吗

java - 如何在java中将rgb颜色转换为int

android - 在 Android Studio 中引用其他模块中的 .apk 类

android - 从给定的日期和时间创建 30 分钟的时段

android - 启用 OpenMP 支持的 Clang/LLVM

android - 将带有资源的库添加到 aosp 包中

android - 未找到 Intent 过滤器 android.net.conn.CONNECTIVITY_CHANGE

java - 从android中的json get方法下载数据时设置进度条百分比