首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在显示带有分页库3的进度栏后加载新项

在显示带有分页库3的进度栏后加载新项
EN

Stack Overflow用户
提问于 2021-03-05 14:06:01
回答 2查看 791关注 0票数 0

我有实现性分页库3,它工作并显示数据,我需要实现的是加载更多的功能,所以当用户向下滚动时,它会获取一个页面10项,所以基本上在加载新数据之间,我希望在底部显示一个进度条,但是由于这是我第一次使用分页库3,我不知道如何做到这一点,如果有人可以的话,谢谢。

  • ,我试图根据适配器类的加载状态显示和隐藏进度条,但没有显示

代码语言:javascript
复制
    lifecycleScope.launch {
           newsAdapter.loadStateFlow.collectLatest { loadingState ->
               if(loadingState.refresh is LoadState.Loading){
                   binding.progressBar.visibility = View.GONE
               }
               if(loadingState.refresh is LoadState.Loading) {
                   binding.progressBar.visibility = View.VISIBLE
               }
               if(loadingState.refresh is LoadState.NotLoading){
                   binding.progressBar.visibility = View.GONE
               }

           }
       }
EN

回答 2

Stack Overflow用户

发布于 2021-03-16 00:25:49

用于向下滚动的LoadStateCombinedLoadStates.append,而不是.refresh,当列表被替换时(初始加载/刷新)。

实际上,如果您对LoadState感知的ConcatAdapter风格的页脚感兴趣,那么分页有一个内置的内容,请参阅:https://developer.android.com/topic/libraries/architecture/paging/v3-paged-data#load-state-adapter

票数 0
EN

Stack Overflow用户

发布于 2022-11-21 14:57:04

查看https://medium.com/@yash786agg/jetpack-paging-3-0-android-bae37a56b92d,我发现我们也应该观察append状态,正如@dlam所写的那样。

代码语言:javascript
复制
adapter.addLoadStateListener { loadState ->

    if (loadState.refresh is LoadState.Loading ||
        loadState.append is LoadState.Loading)
        // Show ProgressBar
    else {
        // Hide ProgressBar

        // If we have an error, show a toast
        val errorState = when {
            loadState.append is LoadState.Error -> loadState.append as LoadState.Error
            loadState.prepend is LoadState.Error ->  loadState.prepend as LoadState.Error
            loadState.refresh is LoadState.Error -> loadState.refresh as LoadState.Error
            else -> null
        }
        errorState?.let {
            Toast.makeText(this, it.error.toString(), Toast.LENGTH_LONG).show()
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66493960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档