gpt4 book ai didi

android - 获取 "notch"的高度,这样内容就不会被截断

转载 作者:行者123 更新时间:2023-12-04 01:50:23 29 4
gpt4 key购买 nike

我怎样才能得到最近的安卓手机缺口的高度,最好以像素为单位?

我有一个实现,其中图像必须全屏显示在顶部。

随着最近发布的手机增加了一个缺口,这个图像将被这个缺口剪掉。我的想法是获取缺口高度并在其上方动态添加边距以适应不同的缺口尺寸。

任何帮助或其他方法将不胜感激,在此先感谢!

最佳答案

获取切口高度(以像素为单位)的最简单方法是覆盖 onAttachedToWindow()您的 View 的功能。附加到窗口的 View 是 rootWindowInsets 的主要要求非空。请注意,检查 SDK 版本是安全的,因为从 Android Pie 开始完全支持 cutout。

override fun onAttachedToWindow() {
super.onAttachedToWindow()
layoutParams = LayoutParams(MATCH_PARENT, WRAP_CONTENT).apply {
topMargin =
if (SDK_INT >= Build.VERSION_CODES.P) rootWindowInsets?.displayCutout?.safeInsetTop ?: 0
else 0
}

}

如果您的 View 不是 CustomView,您应该添加 OnAttachStateChangeListener :
imageView.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
override fun onViewDetachedFromWindow(v: View?) { }

override fun onViewAttachedToWindow(v: View?) {
// call the code from above starting from 'layoutParams = ...' on your View object
}
})

不要忘记更改 LayoutParams(MATCH_PARENT, WRAP_CONTENT)为您自己的需要。

关于android - 获取 "notch"的高度,这样内容就不会被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53366911/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com