From d4861e95088f5b372c4390fb7f76f9efe8b01daa Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Fri, 6 Mar 2026 02:11:58 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt b/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt index 18f06a54e..fe7cfa994 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt @@ -110,6 +110,7 @@ import io.legado.app.ui.widget.components.lazylist.FastScrollLazyColumn import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenu import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenuItem import io.legado.app.ui.widget.components.topbar.DynamicTopAppBar +import kotlinx.coroutines.delay import kotlinx.coroutines.launch import org.koin.androidx.compose.koinViewModel import java.text.SimpleDateFormat @@ -229,10 +230,12 @@ fun TocScreen( var hasAutoScrolled by rememberSaveable { mutableStateOf(false) } - LaunchedEffect(state.items) { - if (!hasAutoScrolled && state.items.isNotEmpty()) { - val targetIndex = state.items.indexOfFirst { it.isDur } + LaunchedEffect(state.items, book) { + if (!hasAutoScrolled && state.items.isNotEmpty() && book != null) { + val durIndex = book?.durChapterIndex ?: -1 + val targetIndex = state.items.indexOfFirst { it.id == durIndex || it.isDur } if (targetIndex != -1) { + delay(100) listState.scrollToItem( index = targetIndex, scrollOffset = -offset