From d24478ae88b24cf3b86e98869e138c3cb906f520 Mon Sep 17 00:00:00 2001
From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com>
Date: Mon, 17 Jul 2023 14:17:21 +0800
Subject: [PATCH] =?UTF-8?q?pref:=20=E4=B8=8A=E6=8B=89=E5=8A=A0=E8=BD=BD?=
=?UTF-8?q?=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../tieba/post/ui/widgets/compose/LoadMore.kt | 30 +++++++++++++++----
app/src/main/res/values/strings.xml | 2 ++
2 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/LoadMore.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/LoadMore.kt
index 8a15c838..633d960f 100644
--- a/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/LoadMore.kt
+++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/widgets/compose/LoadMore.kt
@@ -30,7 +30,13 @@ fun LoadMoreLayout(
onLoadMore: () -> Unit,
enableLoadMore: Boolean = true,
loadEnd: Boolean = false,
- indicator: @Composable (loadEnd: Boolean) -> Unit = { DefaultIndicator(loadEnd = it) },
+ indicator: @Composable (Boolean, Boolean, Boolean) -> Unit = { loading, end, willLoad ->
+ DefaultIndicator(
+ isLoading = loading,
+ loadEnd = end,
+ willLoad = willLoad
+ )
+ },
content: @Composable () -> Unit
) {
val loadDistance = with(LocalDensity.current) { LoadDistance.toPx() }
@@ -68,7 +74,7 @@ fun LoadMoreLayout(
.offset { IntOffset(0, swipeableState.offset.value.roundToInt()) }
) {
if (enableLoadMore && swipeableState.offset.value != loadDistance) {
- indicator(loadEnd)
+ indicator(isLoading, loadEnd, swipeableState.targetValue)
}
}
@@ -78,9 +84,13 @@ fun LoadMoreLayout(
@Composable
fun DefaultIndicator(
+ isLoading: Boolean,
loadEnd: Boolean,
+ willLoad: Boolean,
loadingText: String = stringResource(id = R.string.text_loading),
loadEndText: String = stringResource(id = R.string.no_more),
+ pullToLoadText: String = stringResource(id = R.string.pull_to_load),
+ releaseToLoadText: String = stringResource(id = R.string.release_to_load),
) {
Surface(
elevation = 8.dp,
@@ -89,16 +99,26 @@ fun DefaultIndicator(
) {
Row(
modifier = Modifier
+ .height(IntrinsicSize.Min)
.padding(10.dp)
.animateContentSize(),
verticalAlignment = Alignment.CenterVertically
) {
- if (!loadEnd) {
- CircularProgressIndicator(modifier = Modifier.size(20.dp), strokeWidth = 3.dp, color = MaterialTheme.colors.onSurface)
+ if (isLoading) {
+ CircularProgressIndicator(
+ modifier = Modifier.size(20.dp),
+ strokeWidth = 3.dp,
+ color = MaterialTheme.colors.onSurface
+ )
Spacer(modifier = Modifier.width(8.dp))
Text(text = loadingText, modifier = Modifier.padding(horizontal = 8.dp))
- } else {
+ } else if (loadEnd) {
Text(text = loadEndText, modifier = Modifier.padding(horizontal = 8.dp))
+ } else {
+ Text(
+ text = if (willLoad) releaseToLoadText else pullToLoadText,
+ modifier = Modifier.padding(horizontal = 8.dp)
+ )
}
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dc73bbfe..433851f0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -680,4 +680,6 @@
%d 楼的回复
回复
%d 条回复
+ 继续上拉加载
+ 松开加载