ComposeUI——下拉刷新+上拉加载(二、SwipeLazyColum)

声明:本篇文章在上篇文章的基础上进行封装,请先阅读上篇文章:ComposeUI——下拉刷新+上拉加载(简单封装)_lifeidroid的博客-CSDN博客

经过上篇文章讲解了ComposeUI如何做下拉刷新和上拉加载的方式,虽然可以实现,但是不够优雅,不如原生来的更简洁,可不可以将他们融合起来做成一个既可以下拉刷新又可以上拉加载更多呢。想优雅就要找到不够优雅的原因:

1、下拉刷新和上拉加载的状态,需要单独变量控制【可不可以通过方法控制呢?】

2、每次编写代码都要进行嵌套,SwipeRefresh里面套一个LazyLoadMoreColum【代码太过冗余】

3、两处回调方法不够统一,SwipeRefresh里面下拉刷新的回调,LazyLoadMoreColum里面加载更多的回调。【能否在统一地方进行回调呢?】

分析出了问题,下面就来解决问题。得力于ComposeUI的纯函数的构造,达到我们的目的还是比较简单的,先看修改完后的使用方法吧:

ViewModel:
    //用来控制下拉刷新上拉加载的状态
   val swipeLazyColumState = SwipeLazyColumState()


UI:
        SwipeLazyColum(
            swipeLazyColumState = vm.swipeLazyColumState,
            onRefreshCallBack = {//下拉刷新回调
                vm.loadTopArticle()
                vm.loadArticle(true)
            },
            loadMoreCallBack = { //加载更多的回调
                vm.loadArticle(false) 
            },
        ) {
            //以下内容跟LazyColum用法一样
            item {
                SwiperContent(dataSource = vm.swiperData)
            }
            items(vm.articleTopDataSource) { temp ->
                ArticleItem(item = temp, true)
            }
            items(vm.articleDataSource) { temp ->
                Art
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值