@Composable
fun Screen(flow: Flow<PagingData<HotNewestArticleBean.HotNewestArticle.Article>>) {
val data = flow.collectAsLazyPagingItems()
var showProgressBar by remember{ mutableStateOf(true) }
var showList by remember{ mutableStateOf(false) }
//监听paging状态,控制列表和进度条显示
when (data.loadState.refresh) {
//正在加载
is LoadState.Loading -> {
showProgressBar = true
showList = false
}
//当没有加载动作并且没有错误的时候
is LoadState.NotLoading -> {
showProgressBar = false
showList = true
}
//加载错误
is LoadState.Error -> {
showProgressBar = false
val error = (data.loadState.refresh as LoadState.Error).error
Log.e("Paging错误","${error.message}")
}
}
//列表
if (showList) {
LazyColumn{
items(data){ item ->
item?.let {
Item(data = it)
}
}
}
}
//进度条
if (showProgressBar){ CircularProgressIndicator() }
}
@Composable
fun Item(
modifier: Modifier = Modifier,
data: HotNewestArticleBean.HotNewestArticle.Article
) {
val author = data.author
val shareUser = data.shareUser
val superChapterName = data.superChapterName
val userName = if (author.isEmpty()) {
String.format("%s · %s", superChapterName, shareUser)
} else {
String.format("%s · %s", superChapterName, author)
}
Box {
Column(
modifier = modifier
.padding(3.dp)
.border(BorderStroke(width = 2.dp, color = Color(0xFF777777)))
.padding(3.dp)
.fillMaxWidth()
) {
Text(text = Html.fromHtml(data.title).toString(), fontSize = (20.sp))
Text(text = userName)
Text(text = data.niceDate)
}
}
}
Compose () - 使用Paging
猜你喜欢
转载自blog.csdn.net/HugMua/article/details/130354886
今日推荐
周排行