Как проверить % видимости Composable?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как проверить % видимости Composable?

Сообщение Anonymous »


У меня есть Composable, который находится в LazyColumn, но я пытаюсь выполнить проверку видимости из LazyListState, который я использовал использовать это

fun LazyListState.visibleItems(itemVisiblePercentThreshold: Float) = макетИнформация .visibleItemsInfo .фильтр { VisiblePercent(it) >= itemVisiblePercentThreshold } частное развлечение LazyListState.visibilityPercent(info: LazyListItemInfo): Float { val CutTop = maxOf(0, LayoutInfo.viewportStartOffset - info.offset) val CutBottom = maxOf(0, info.offset + info.size - layoutInfo.viewportEndOffset) return maxOf(0f, 100f - (cutTop + CutBottom) * 100f / info.size) } Но теперь я хочу, чтобы это было внутри Composable, поскольку у меня нет доступа к списку, другие функции используют мои Composable, и он может быть внутри LazyList , Surface, что угодно, поэтому я использую onGloballyPositioned, чтобы определить, видно оно или нет, но мне хотелось бы знать, составляет ли оно хотя бы 30 % видно. Есть идеи?
Объяснение
У меня есть @Composable, который я хочу предоставить другим функциям моего приложения, например:
У
Feature1 есть LazyColumn, который печатает свои элементы, но затем они хотят добавить мой @Composable в начало списка, поэтому я хочу знать, когда мой code>@Composable виден (не менее 30%) в этом случае, если он обычно вверху, он всегда должен быть 100% при загрузке списка, но, например, в Feature2 они хотят добавить мой @Composable в середине их списка, поэтому я должен знать, когда он станет видимым, поэтому мне нужен порог для отправки некоторых событий.

Это не всегда будет LazyColumn, поэтому я не знаю, хочу ли я быть прикрепленным к LazyListState, но при необходимости я могу получить LazyListState на моем @Composable.
Ответить

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

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

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

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

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