pref: 上拉加载提示
This commit is contained in:
parent
ea0bcc9384
commit
d24478ae88
|
|
@ -30,7 +30,13 @@ fun LoadMoreLayout(
|
||||||
onLoadMore: () -> Unit,
|
onLoadMore: () -> Unit,
|
||||||
enableLoadMore: Boolean = true,
|
enableLoadMore: Boolean = true,
|
||||||
loadEnd: Boolean = false,
|
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
|
content: @Composable () -> Unit
|
||||||
) {
|
) {
|
||||||
val loadDistance = with(LocalDensity.current) { LoadDistance.toPx() }
|
val loadDistance = with(LocalDensity.current) { LoadDistance.toPx() }
|
||||||
|
|
@ -68,7 +74,7 @@ fun LoadMoreLayout(
|
||||||
.offset { IntOffset(0, swipeableState.offset.value.roundToInt()) }
|
.offset { IntOffset(0, swipeableState.offset.value.roundToInt()) }
|
||||||
) {
|
) {
|
||||||
if (enableLoadMore && swipeableState.offset.value != loadDistance) {
|
if (enableLoadMore && swipeableState.offset.value != loadDistance) {
|
||||||
indicator(loadEnd)
|
indicator(isLoading, loadEnd, swipeableState.targetValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,9 +84,13 @@ fun LoadMoreLayout(
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun DefaultIndicator(
|
fun DefaultIndicator(
|
||||||
|
isLoading: Boolean,
|
||||||
loadEnd: Boolean,
|
loadEnd: Boolean,
|
||||||
|
willLoad: Boolean,
|
||||||
loadingText: String = stringResource(id = R.string.text_loading),
|
loadingText: String = stringResource(id = R.string.text_loading),
|
||||||
loadEndText: String = stringResource(id = R.string.no_more),
|
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(
|
Surface(
|
||||||
elevation = 8.dp,
|
elevation = 8.dp,
|
||||||
|
|
@ -89,16 +99,26 @@ fun DefaultIndicator(
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.height(IntrinsicSize.Min)
|
||||||
.padding(10.dp)
|
.padding(10.dp)
|
||||||
.animateContentSize(),
|
.animateContentSize(),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
if (!loadEnd) {
|
if (isLoading) {
|
||||||
CircularProgressIndicator(modifier = Modifier.size(20.dp), strokeWidth = 3.dp, color = MaterialTheme.colors.onSurface)
|
CircularProgressIndicator(
|
||||||
|
modifier = Modifier.size(20.dp),
|
||||||
|
strokeWidth = 3.dp,
|
||||||
|
color = MaterialTheme.colors.onSurface
|
||||||
|
)
|
||||||
Spacer(modifier = Modifier.width(8.dp))
|
Spacer(modifier = Modifier.width(8.dp))
|
||||||
Text(text = loadingText, modifier = Modifier.padding(horizontal = 8.dp))
|
Text(text = loadingText, modifier = Modifier.padding(horizontal = 8.dp))
|
||||||
} else {
|
} else if (loadEnd) {
|
||||||
Text(text = loadEndText, modifier = Modifier.padding(horizontal = 8.dp))
|
Text(text = loadEndText, modifier = Modifier.padding(horizontal = 8.dp))
|
||||||
|
} else {
|
||||||
|
Text(
|
||||||
|
text = if (willLoad) releaseToLoadText else pullToLoadText,
|
||||||
|
modifier = Modifier.padding(horizontal = 8.dp)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -680,4 +680,6 @@
|
||||||
<string name="title_sub_posts">%d 楼的回复</string>
|
<string name="title_sub_posts">%d 楼的回复</string>
|
||||||
<string name="title_sub_posts_default">回复</string>
|
<string name="title_sub_posts_default">回复</string>
|
||||||
<string name="title_sub_posts_header">%d 条回复</string>
|
<string name="title_sub_posts_header">%d 条回复</string>
|
||||||
|
<string name="pull_to_load">继续上拉加载</string>
|
||||||
|
<string name="release_to_load">松开加载</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue