代码片段如下:
Box(
Modifier
.size(48.dp, 48.dp)
.background(Color.Transparent)
.align(Alignment.CenterEnd)
)
{
Box(
Modifier
.size(height = 35.636363.dp, width = 41.818181.dp)
.align(Alignment.CenterEnd)
.clip(RoundedCornerShape(topStart = 20.dp, bottomStart = 20.dp))
.clickable(onClick = {showDialogFragment.value = true})
.background(Color.Red)
)
}
每当我点击父框(一个是透明的),它激活其唯一的子框的点击事件。为什么如此?当前的行为符合我的需要,但我不明白为什么会这样。
根据材料指南,最小触摸尺寸为48.dp
。
从1.1.0-alpha03开始,当你在小于此值的视图中添加触摸检测时,跟踪将在放大的帧上工作。
在ViewConfiguration中添加了最小触摸目标大小,用于语义和指针输入,以确保可访问性。
出于好奇,您可以使用pointerInput
修饰符检查当前视图的扩展触摸填充,它位于Compose:
.pointerInput(Unit) {
println("$extendedTouchPadding")
}