Как определить, какой элемент находится в фокусе в HorizontalMultiBrowseCarousel из Material3 в Jetpack Compose?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как определить, какой элемент находится в фокусе в HorizontalMultiBrowseCarousel из Material3 в Jetpack Compose?

Сообщение Anonymous »

Я использую экспериментальный HorizontalMultiBrowseCarousel из androidx.compose.material3 для отображения карусели элементов в моем приложении Android Jetpack Compose.
Моя цель — определить, какой элемент в данный момент находится в фокусе (крупный), чтобы я мог показывать или скрывать текст или другие элементы пользовательского интерфейса в зависимости от фокуса (мелкие элементы).
Изображение

Что я пробовал:
  • Проверил, предоставляет ли RememberCarouselState() какой-либо activeItemIndex или аналогичный — это не так.
  • Искал onItemFocus или любой API прослушивателя — он также кажется отсутствует.
  • Рассматривается использование Modifier.onGloballyPositioned, но не уверен, насколько надежным и эффективным это будет для определения выравнивания по центру элементов карусели.
Пример того, что я хочу:
Я хочу отображать компонент Text только на выделенном (большом) элементе карусели, аналогично как вы можете проверить LazyListState.firstVisibleItemIndex в LazyRow.
Мой вопрос:
Существует ли поддерживаемый или рекомендуемый способ обнаружения текущего сфокусированного/большого элемента в HorizontalMultiBrowseCarousel? Если нет, то какой обходной путь лучше всего?
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/796 ... from-mater
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»