我正在使用 WindowManager 获取插图,在某些情况下 inset.top 返回 0。这是我获取 WindowManager 的方式:
val Context.windowManager: WindowManager
get() = asActivity()?.windowManager ?: getSystemService(Context.WINDOW_SERVICE) as WindowManager
fun Context.asActivity(): Activity? {
return when (this) {
is Activity -> this
is ContextWrapper -> baseContext.asActivity()
else -> null
}
}
虽然上下文来自活动(片段、对话框等),但一切正常(即使在 API30 中)?在 Android 12(API 31)中对此进行了测试,一切正常,但在 android 11 上,当上下文来自行为(我创建了自定义)时,它 inset.top 为 0,但底部是正确的。真的不知道为什么会这样?已经认为这是 API 30 中的错误