加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Android探路先锋之Flutter (滑动监听+加载更多功能实现)

发布时间:2020-12-14 14:58:17 所属栏目:百科 来源:网络整理
导读:ListView官网目前只介绍了一个下拉刷新功能,但上拉加载更多貌似没有甚至监听都没找到,相信以后会有大侠陆续给出自己的方案的,就像Android一样如雨后春笋,势不可挡。 在百度谷歌上目前都没有多少相关的解决方案 即使是flutter的一手资料也只给出了动态更

ListView官网目前只介绍了一个下拉刷新功能,但上拉加载更多貌似没有甚至监听都没找到,相信以后会有大侠陆续给出自己的方案的,就像Android一样如雨后春笋,势不可挡。

在百度谷歌上目前都没有多少相关的解决方案

即使是flutter的一手资料也只给出了动态更新的方案。

看来只能靠自己了? 不废话直接上源码? 核心即

所摸点长度 +滑动距离? = IistView的长度? 说明到达底部

 
 
var scrollController = new ScrollController();
double downY = 0.0lastDownY = lastListLength = ;
new Listener(
                  onPointerDown: (event) {
                    print("onPointerDown=====${event.down}");
                    print(delta}kind}                    var position = event.position.distance"onPointerDown=====${position}                    downY = position"================onPointerDown================")                  },                  onPointerMove: (event) {
                    ;
//                    print("onPointerMove=====${event.position}");
//                    print("onPointerMove=====${event.delta}");
                    var detal = position - lastDownYif (detal > 0) {
                      print("================向下移动================")                    } else {
                      //所摸点长度 +滑动距离  = IistView的长度  说明到达底部
                      print("================向上移动================")                      print(
                          "scrollController==滑动距离=======${(position - downY)}                      var scrollExtent = scrollController.position
                          .maxScrollExtent"scrollController==ListView最大长度===${scrollExtent}                      print("scrollController==所摸点长度===${scrollController
offset}"scrollController==所摸点离屏幕距离===var result = offset +
                          (position - downY).abs()"scrollController==result==$resultif (result >= scrollExtent) {
                        print("scrollController====到达底部")                        lastListLength = scrollExtent                        loadMore(scrollExtent)                      }
                    }
                    lastDownY = position                  onPointerCancel: (event) {
                    print("onPointerCancel=====${event.position}                  onPointerUp: (event) {
//                    loadMore();
                    print("onPointerUp=====${event.                  child: ListView.builder(
                    //primary: false,                    physics: const ClampingScrollPhysics()                    controller: scrollController                    itemBuilder: (BuildContext contextvar data = GankBean.fromJson(datas[index])return new NewsItemView(
                        data.desc                        data.urlwhopublishedAttype                      )                    }                    itemCount: datas == null ? 0 : datas.length                  )
              );

Github源文件:https://github.com/goodluckforme/flutter_try/blob/master/lib/app/home/NicePage.dart

源码:Android探路先锋之Flutter Gank版本

欢迎strat哦。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读