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==所摸点长度===${scrollControlleroffset}"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 Clam@R_419_6817@ScrollPhysics() 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
欢迎strat哦。
@H_264_301@ 总结以上是内存溢出为你收集整理的Android探路先锋之Flutter (滑动监听+加载更多功能实现)全部内容,希望文章能够帮你解决Android探路先锋之Flutter (滑动监听+加载更多功能实现)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)