From 58466c03e9fd8c85dbb9c10b878492488cce500a Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Sat, 6 Dec 2025 13:21:19 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=9C=A8=E5=8F=91?= =?UTF-8?q?=E7=8E=B0=E9=A1=B5=E5=86=85=E5=88=87=E6=8D=A2=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=B8=8D=E4=BC=9A=E7=BB=A7=E7=BB=AD=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E4=B8=8B=E4=B8=80=E9=A1=B5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/explore/ExploreShowScreen.kt | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt b/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt index 8bc2040ac..f6d3869b8 100644 --- a/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt +++ b/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt @@ -123,27 +123,31 @@ fun ExploreShowScreen( val gridColumnCount = remember(context.resources.configuration.orientation) { context.bookshelfLayoutGrid } - val shouldLoadMore = remember { + + val shouldLoadMoreList = remember { derivedStateOf { - val totalItems: Int - val lastVisibleIndex: Int - if (isGridMode) { - totalItems = gridState.layoutInfo.totalItemsCount - lastVisibleIndex = gridState.layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: 0 - } else { - totalItems = listState.layoutInfo.totalItemsCount - lastVisibleIndex = listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: 0 - } - totalItems > 0 && lastVisibleIndex >= totalItems - 6 + val total = listState.layoutInfo.totalItemsCount + val last = listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: 0 + total > 0 && last >= total - 6 } } - LaunchedEffect(shouldLoadMore.value) { - if (shouldLoadMore.value) { - viewModel.loadMore() + val shouldLoadMoreGrid = remember { + derivedStateOf { + val total = gridState.layoutInfo.totalItemsCount + val last = gridState.layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: 0 + total > 0 && last >= total - 6 } } + LaunchedEffect(shouldLoadMoreList.value, isGridMode) { + if (!isGridMode && shouldLoadMoreList.value) viewModel.loadMore() + } + + LaunchedEffect(shouldLoadMoreGrid.value, isGridMode) { + if (isGridMode && shouldLoadMoreGrid.value) viewModel.loadMore() + } + LaunchedEffect(shouldTriggerAutoLoad) { if (shouldTriggerAutoLoad) { viewModel.loadMore()