如何检测手势导航或按钮导航是否处于活动状态?



Android 10之后,用户可以选择手势导航模式。我想检测设备是否处于手势导航模式。我将根据系统导航偏好改变设计。

我在文档中找不到任何东西。怎么做呢?

你有任何官方API或解决方案吗?

从Android 30开始,我们可以获得系统插页来检查手势导航是否启用。

如果启用了手势导航,那么WindowInsets.Type.systemGestures()inset.leftinset.right的值将大于0。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
binding.root.apply {
var hasGesture = false
doOnAttach {
val inset = it.rootWindowInsets?.getInsets(WindowInsets.Type.systemGestures())
println("inset: left: ${inset?.left} right: ${inset?.right} top:${inset?.top} bottom: ${inset?.bottom}")
val margin = it.rootWindowInsets?.getInsets(WindowInsets.Type.systemGestures())?.left ?: 0
hasGesture = margin > 0
}
}
}

相关内容

  • 没有找到相关文章

最新更新