Вот код, который я использую для реализации вертикального пейджера:< /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