Вертикальный пейджер в Jetpack Compose продолжает прокручивать страницы без остановкиAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Вертикальный пейджер в Jetpack Compose продолжает прокручивать страницы без остановки

Сообщение Anonymous »

Я создаю вертикальный видеопоток в Jetpack Compose, используя UpperPager для отображения списка URL-адресов видео. Я хочу, чтобы каждое видео воспроизводилось только тогда, когда видна соответствующая страница. Однако я столкнулся с проблемой, когда пейджер продолжает прокручивать непрерывно, не останавливаясь, и после прокрутки возвращается на страницу 0.
Вот код, который я использую для реализации вертикального пейджера:< /p>

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

package com.ae.portraitvideoplayer

import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.pager.VerticalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier

@OptIn(ExperimentalFoundationApi::class)
@Composable
fun VerticalVideoFeedScreen() {
val videoUrls = listOf(
"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4",
"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4",
"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
)

// Initialize the PagerState
val pagerState = rememberPagerState(
initialPage = 0, // Start from the first video
pageCount = { videoUrls.size } // Dynamic page count based on video list size
)

// Use VerticalPager
Box {
VerticalPager(
state = pagerState,
modifier = Modifier.fillMaxSize()
) { page ->
// Access the video URL at the current page
val videoUrl = videoUrls[page]

// Determine if the current page is active
val isCurrentPage = pagerState.currentPage == page

// Display the video player for the current page
PortraitVideoPlayer(
videoUrl = videoUrl,
shouldPlay = isCurrentPage
)
}
}
}
Проблема:
Вертикальный пейджер постоянно прокручивается и не останавливается после достижения последней страницы.
После прокрутки он сбрасывается на страницу 0, даже если я нахожусь на последней странице.
Я хочу, чтобы пейджер прекращал прокрутку и переходил на следующую страницу только тогда, когда пользователь прокручивает ее. Кроме того, я хочу, чтобы каждое видео воспроизводилось только тогда, когда соответствующая страница активна.
Что я пробовал:
Я использую ВертикальныйPager с динамическим параметром PageCount в зависимости от размера списка videoUrls.
Я проверяю, активна ли текущая страница, с помощью флага mustPlay (isCurrentPage), но это все равно не решает проблему.Может кто-нибудь помочь мне понять, почему такое случается и как это исправить?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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