File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed
composeApp/src/commonMain/kotlin/com/jankinwu/fntv/client/ui Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -88,8 +88,16 @@ fun EpisodesScrollRow(
8888 episodes : List <EpisodeListResponse >,
8989 navigator : ComponentNavigator ,
9090 modifier : Modifier = Modifier ,
91+ initialIndex : Int = 0,
9192) {
9293 val scrollState = rememberLazyListState()
94+
95+ // 监听初始索引变化并滚动到指定位置
96+ androidx.compose.runtime.LaunchedEffect (initialIndex) {
97+ if (initialIndex >= 0 && initialIndex < episodes.size) {
98+ scrollState.scrollToItem(initialIndex)
99+ }
100+ }
93101 val scrollRowItemDataList = FnDataConvertor .convertToScrollRowItemDataList(episodes)
94102 val favoriteViewModel: FavoriteViewModel = koinViewModel<FavoriteViewModel >()
95103 val favoriteUiState by favoriteViewModel.uiState.collectAsState()
Original file line number Diff line number Diff line change @@ -495,10 +495,16 @@ fun TvEpisodeBody(
495495
496496 item {
497497 logger.i(" episodeList: $episodeList " )
498+ val currentEpisodeIndex = remember(episodeList, playInfo) {
499+ playInfo?.item?.episodeNumber?.let { episodeNumber ->
500+ episodeList.indexOfFirst { it.episodeNumber == episodeNumber }
501+ } ? : 0
502+ }
498503 EpisodesScrollRow (
499504 episodes = episodeList,
500505 navigator,
501- modifier = Modifier .padding(horizontal = 16 .dp)
506+ modifier = Modifier .padding(horizontal = 16 .dp),
507+ initialIndex = if (currentEpisodeIndex != - 1 ) currentEpisodeIndex else 0
502508 )
503509 Spacer (modifier = Modifier .height(24 .dp))
504510 }
You can’t perform that action at this time.
0 commit comments