Отслеживайте, находится ли компоновка в центре экранаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Отслеживайте, находится ли компоновка в центре экрана

Сообщение Anonymous »

Привет всем, я пытаюсь отследить, находится ли компонуемый объект в центре экрана.
У меня есть **LazyColumn ** с большим количеством контента (элементы могут иметь разных типов и размеров). Недавно мне дали задачу отследить, находится ли видео (часть компонента **Post**) в центре экрана и в зависимости от этого воспроизвести его или остановить.
Поскольку для видео используются AndroidView и android.media3.ui.PlayerView, я решил использовать ViewTreeObserver.OnGlobalLayoutListener, и он вроде производительность не упала и прокрутка достаточно плавная.
А можно ли в Compose сделать так, чтобы производительность не падала?
На данный момент у меня есть такая реализация:

Код: Выделить всё

AndroidView(
modifier = modifier.
onGloballyPositioned { coordinates ->
val position = coordinates.positionInWindow()
val start = position.y.roundToInt()
val end = coordinates.size.height + start
if (screenCenter in start..end) {
exoPlayer.play()
} else {
exoPlayer.pause()
}
},
factory = { viewContext ->
PlayerView(viewContext).apply {
player = exoPlayer
resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FIXED_WIDTH}
}
)
И прокрутка кажется менее плавной, чем ViewTreeObserver.OnGlobalLayoutListener, есть ли способ ее улучшить? Может я что-то не так делаю?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -of-screen
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Камера SDL2 не находится в центре экрана
    Гость » » в форуме C++
    0 Ответы
    34 Просмотры
    Последнее сообщение Гость
  • Отслеживайте обновления местоположения после закрытия приложения
    Anonymous » » в форуме IOS
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Отслеживайте статус завершения скрипта Python с помощью подпроцесса
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Отслеживайте вызовы функций дочернего процесса, используя /proc/pid/maps и ptrace.
    Anonymous » » в форуме Linux
    0 Ответы
    114 Просмотры
    Последнее сообщение Anonymous
  • Отслеживайте каждый запрос и ответ API
    Anonymous » » в форуме Android
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

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