From 9f0870e251a3e42385ec65e06e445e27b3dfa5db Mon Sep 17 00:00:00 2001 From: yaoxieyoulei <1622968661@qq.com> Date: Sun, 21 Apr 2024 19:33:33 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E7=84=A6=E7=82=B9?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screens/panel/components/PanelIptvGroupList.kt | 13 +++++-------- .../ui/screens/panel/components/PanelIptvItem.kt | 5 ++++- .../ui/screens/panel/components/PanelIptvList.kt | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvGroupList.kt b/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvGroupList.kt index 442c27b7..43c8796d 100644 --- a/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvGroupList.kt +++ b/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvGroupList.kt @@ -35,22 +35,19 @@ fun PanelIptvGroupList( iptvGroupList: IptvGroupList = IptvGroupList(), epgList: EpgList = EpgList(), onIptvSelected: (Iptv) -> Unit = {}, - listState: TvLazyListState = rememberTvLazyListState( - max( - 0, - iptvGroupList.iptvGroupIdx(currentIptv) - ) + state: TvLazyListState = rememberTvLazyListState( + max(0, iptvGroupList.iptvGroupIdx(currentIptv)) ), onListStateChanged: () -> Unit = {}, ) { val childPadding = rememberChildPadding() - LaunchedEffect(listState) { - snapshotFlow { listState.isScrollInProgress }.collect { onListStateChanged() } + LaunchedEffect(state) { + snapshotFlow { state.isScrollInProgress }.collect { onListStateChanged() } } TvLazyColumn( - state = listState, + state = state, modifier = modifier, verticalArrangement = Arrangement.spacedBy(14.dp), contentPadding = PaddingValues(bottom = childPadding.bottom), diff --git a/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvItem.kt b/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvItem.kt index 0d6532fe..53782fb5 100644 --- a/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvItem.kt +++ b/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvItem.kt @@ -12,6 +12,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -42,10 +43,12 @@ fun PanelIptvItem( ) { var isFocused by remember { mutableStateOf(false) } val focusRequester = remember { FocusRequester() } + var hasFocused by rememberSaveable { mutableStateOf(false) } LaunchedEffect(Unit) { - if (initialFocused) { + if (initialFocused && !hasFocused) { focusRequester.requestFocus() + hasFocused = true } } diff --git a/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvList.kt b/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvList.kt index a0924b5d..2e40c787 100644 --- a/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvList.kt +++ b/app/src/main/java/top/yogiczy/mytv/ui/screens/panel/components/PanelIptvList.kt @@ -27,17 +27,17 @@ fun PanelIptvList( iptvList: IptvList = IptvList(), epgList: EpgList = EpgList(), onIptvSelected: (Iptv) -> Unit = {}, - listState: TvLazyListState = rememberTvLazyListState(max(0, iptvList.indexOf(currentIptv))), + state: TvLazyListState = rememberTvLazyListState(max(0, iptvList.indexOf(currentIptv))), onListStateChanged: () -> Unit = {}, ) { val childPadding = rememberChildPadding() - LaunchedEffect(listState) { - snapshotFlow { listState.isScrollInProgress }.collect { onListStateChanged() } + LaunchedEffect(state) { + snapshotFlow { state.isScrollInProgress }.collect { onListStateChanged() } } TvLazyRow( - state = listState, + state = state, modifier = modifier, horizontalArrangement = Arrangement.spacedBy(10.dp), contentPadding = PaddingValues(start = childPadding.start, end = childPadding.end),