#kotlin #android-jetpack-compose
Вопрос:
Вот фрагмент кода:
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)
)
}
Всякий раз, когда я нажимаю на родительское поле (прозрачное), оно активирует событие щелчка своего единственного дочернего элемента. Почему так? Текущее поведение отвечает моим потребностям, но я не понимаю, почему это происходит.
Ответ №1:
В соответствии с руководящими принципами по материалам, минимальный размер прикосновения составляет 48.dp
.
Начиная с версии 1.1.0-alpha03, когда вы добавляете обнаружение прикосновения к виду с размером, меньшим этого значения, отслеживание будет работать на увеличенном кадре.
Добавлен минимальный целевой размер касания в конфигурацию просмотра для использования в семантике и вводе указателей для обеспечения доступности.
Просто из любопытства вы можете проверить расширенную сенсорную панель для текущего представления pointerInput
с помощью модификатора, который находится в разделе «Вся обработка прикосновений» в Compose:
.pointerInput(Unit) {
println("$extendedTouchPadding")
}