Я использую экспериментальный HorizontalMultiBrowseCarousel из androidx.compose.material3 для отображения карусели элементов в моем приложении Android Jetpack Compose.
Моя цель — определить, какой элемент в данный момент находится в фокусе (крупный), чтобы я мог показывать или скрывать текст или другие элементы пользовательского интерфейса в зависимости от фокуса (мелкие элементы).
Что я пробовал:
Проверил, предоставляет ли RememberCarouselState() какой-либо activeItemIndex или аналогичный — это не так.
Искал onItemFocus или любой API прослушивателя — он также кажется отсутствует.
Рассматривается использование Modifier.onGloballyPositioned, но не уверен, насколько надежным и эффективным это будет для определения выравнивания по центру элементов карусели.
Пример того, что я хочу:
Я хочу отображать компонент Text только на выделенном (большом) элементе карусели, аналогично как вы можете проверить LazyListState.firstVisibleItemIndex в LazyRow.
Мой вопрос: Существует ли поддерживаемый или рекомендуемый способ обнаружения текущего сфокусированного/большого элемента в HorizontalMultiBrowseCarousel? Если нет, то какой обходной путь лучше всего?
Заранее спасибо!
Я использую экспериментальный HorizontalMultiBrowseCarousel из androidx.compose.material3 для отображения карусели элементов в моем приложении Android Jetpack Compose. Моя цель — [b]определить, какой элемент в данный момент находится в фокусе (крупный)[/b], чтобы я мог показывать или скрывать текст или другие элементы пользовательского интерфейса в зависимости от фокуса (мелкие элементы). [img]https://i.sstatic.net/oIDkxDA4.gif[/img]
Что я пробовал: [list] [*]Проверил, предоставляет ли RememberCarouselState() какой-либо activeItemIndex или аналогичный — это не так. [*]Искал onItemFocus или любой API прослушивателя — он также кажется отсутствует. [*]Рассматривается использование Modifier.onGloballyPositioned, но не уверен, насколько надежным и эффективным это будет для определения выравнивания по центру элементов карусели. [/list] Пример того, что я хочу: Я хочу отображать компонент Text только на выделенном (большом) элементе карусели, аналогично как вы можете проверить LazyListState.firstVisibleItemIndex в LazyRow. Мой вопрос: [b]Существует ли поддерживаемый или рекомендуемый способ обнаружения текущего сфокусированного/большого элемента в HorizontalMultiBrowseCarousel? Если нет, то какой обходной путь лучше всего?[/b] Заранее спасибо!