У меня есть 2 LazyRows и кнопка. Во время прокрутки LazyRow A я могу без проблем нажать кнопку, но когда я нажимаю элемент LazyRow A во время прокрутки LazyRow B, событие щелчка не регистрируется.
Button(modifier = Modifier.size(50.dp), onClick = {
// reached during scrolling of Lazy Row B
}) {}
// Lazy Row A
LazyRow {
items(10) {
Box(modifier = Modifier.size(50.dp).clickable {
// not reached during scrolling of Lazy Row B
})
}
}
// Lazy Row B
LazyRow {
items(10) {
Box(modifier = Modifier.size(50.dp))
}
}
Любая идея, почему это происходит и как можно переопределить это поведение?
Да, я отредактировал пост. Его можно воспроизвести с помощью приведенного выше кода.
Следующий код, похоже, отлично работает для меня при вставке в новый проект «Пустой компоновщик». Кнопка и оба набора элементов LazyRow кликабельны и обновляют сообщение.
@Composable
fun Greeting() {
Column(modifier = Modifier.fillMaxSize()) {
var message by remember { mutableStateOf("") }
Text("message: $message")
Button(
modifier = Modifier.size(50.dp),
onClick = {
// reached during scrolling of Lazy Row B
message = "Button clicked"
}
) {}
// Lazy Row A
LazyRow {
items(10) { i ->
Text(
text = i.toString(),
modifier = Modifier.size(50.dp).background(Color.Gray)
.clickable {
// not reached during scrolling of Lazy Row B
message = "Row A clicked $i"
},
)
Spacer(modifier = Modifier.width(2.dp))
}
}
// Lazy Row B
LazyRow {
items(10) { i ->
Text(
text = i.toString(),
modifier = Modifier.size(50.dp).background(Color.Cyan)
.clickable {
message = "Row B clicked $i"
},
)
Spacer(modifier = Modifier.width(2.dp))
}
}
}
}
Спасибо, это привело меня в правильном направлении, я завернул все в столбец с модификатором вертикальной прокрутки. Это было причиной. Без него работает нормально. Пока не совсем уверен, почему это происходит.
Не могли бы вы проголосовать за меня и/или "отметить ответ как правильный" любовь? Спасибо.
FWIW - я добавил вертикальную прокрутку в свой модификатор столбца, и он все еще работает нормально. Не могу объяснить, что вы видите... Column(modifier = Modifier .fillMaxSize() .verticalScroll(state = RememberScrollState(), enabled = true)) { }
Можете ли вы опубликовать упрощенный код вашего Composable, который содержит оба LazyRows?