大佬教程收集整理的这篇文章主要介绍了Flutter ListView延迟加载,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
ScrollController
.
ScrollController有一些有用的信息,例如scrolloffset和ScrollPosition
的列表.
在你的情况下,有趣的部分是在controller.position中,这是当前可见的ScrollPosition.它代表可滚动的一部分.
ScrollPosition包含有关它在可滚动内部的位置的信息.如extentBefore和extentAfter.或者它的大小,有extenTinside.
考虑到这一点,您可以基于extentAfter触发服务器调用,该调用表示可用的剩余卷轴空间.
这是使用我所说的基本示例.
class MyHome extends StatefulWidget { @override _MyHomeState createState() => new _MyHomeState(); } class _MyHomeState extends State<MyHome> { ScrollController controller; List<String> items = new List.generate(100,(indeX) => 'Hello $index'); @override void initState() { super.initState(); controller = new ScrollController()..addListener(_scrollListener); } @override void dispose() { controller.removeListener(_scrollListener); super.dispose(); } @override Widget build(BuildContext context) { return new Scaffold( body: new Scrollbar( child: new ListView.builder( controller: controller,itemBuilder: (context,indeX) { return new Text(items[index]); },itemCount: items.length,),); } void _scrollListener() { print(controller.position.extentAfter); if (controller.position.extentAfter < 500) { setState(() { items.addAll(new List.generate(42,(indeX) => 'Inserted $index')); }); } } }
您可以清楚地看到,当到达滚动的末尾时,由于加载了更多项目,滚动条会消耗掉.
以上是大佬教程为你收集整理的Flutter ListView延迟加载全部内容,希望文章能够帮你解决Flutter ListView延迟加载所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。