虽然有大量关于Tapjacking in tradition XML views in Android的文档可以防止恶意应用程序与敏感信息交互,但对于Jetpack Compose来说,似乎没有相关的文档.
@Composable
s是否有filterTouchesWhenObscured
的等效值,这个问题是在更基础的层面上解决的,还是需要使用手势/touch 修改器来实现自定义逻辑?
虽然有大量关于Tapjacking in tradition XML views in Android的文档可以防止恶意应用程序与敏感信息交互,但对于Jetpack Compose来说,似乎没有相关的文档.
@Composable
s是否有filterTouchesWhenObscured
的等效值,这个问题是在更基础的层面上解决的,还是需要使用手势/touch 修改器来实现自定义逻辑?
无法为特定的可组合性指定filterTouchesWhenObscured
,根据this名维护人员的 comments ,目前还没有计划:
在不久的将来,我们不太可能在ComposeView级别之外实现它.
但你可以用ComposableView
美元来画合成树.例如,如果要在屏幕上显示某个特定视图时将其应用于整个屏幕,可以按如下方式执行:
val composeView = LocalView.current
DisposableEffect(Unit) {
composeView.filterTouchesWhenObscured = true
onDispose {
composeView.filterTouchesWhenObscured = false
}
}
或者,如果您想将其应用于特定的可组合性,例如仅应用于屏幕的一部分,您可以使用这样的包装器:
@Composable
fun ObscuredView(
content: @Composable () -> Unit,
) {
AndroidView(
factory = {
ComposeView(it).apply {
filterTouchesWhenObscured = true
}
},
update = {
it.setContent(content)
}
)
}
用法:
ObscuredView {
Text("this text is Obscured")
}