Событие клика во время прокрутки LazyRow не зарегистрировано

У меня есть 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))
            }
        }

Любая идея, почему это происходит и как можно переопределить это поведение?

Можете ли вы опубликовать упрощенный код вашего Composable, который содержит оба LazyRows?

Mike 18.11.2022 20:08

Да, я отредактировал пост. Его можно воспроизвести с помощью приведенного выше кода.

user5102612 18.11.2022 20:41
Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
1
2
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следующий код, похоже, отлично работает для меня при вставке в новый проект «Пустой компоновщик». Кнопка и оба набора элементов 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))
            }
        }
    }
}

Спасибо, это привело меня в правильном направлении, я завернул все в столбец с модификатором вертикальной прокрутки. Это было причиной. Без него работает нормально. Пока не совсем уверен, почему это происходит.

user5102612 18.11.2022 22:16

Не могли бы вы проголосовать за меня и/или "отметить ответ как правильный" любовь? Спасибо.

Mike 19.11.2022 00:57

FWIW - я добавил вертикальную прокрутку в свой модификатор столбца, и он все еще работает нормально. Не могу объяснить, что вы видите... Column(modifier = Modifier .fillMaxSize() .verticalScroll(state = RememberScrollState(), enabled = true)) { }

Mike 19.11.2022 01:02

Другие вопросы по теме