20-flutter下拉刷新与上拉加载
1 RefreshIndicator 下拉刷新控件
下拉刷新的时候会回调 onRefresh 方法
RefreshIndicator(onRefresh: _handleRefresh,child: ListView(children: _buildList(),),
),
2 上拉加载多
上拉加载更多的时候
@override void initState() { super.initState();_scrollController.addListener((){// 如果滑动到最大的可滚动位置if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent){// 加载更多数据_loadData();}});}
import 'dart:core';import 'package:flutter/material.dart';List<String> city_names = ["北京","上海","广州","深圳","南京","郑州","武汉","长江","黄河","哈尔滨","成都","重庆"];void main() => runApp(MyApp());class MyApp extends StatefulWidget {@override_MyAppState createState() => _MyAppState();}class _MyAppState extends State<MyApp>
{ // 监听上拉刷新 设置一个控制器ScrollController _scrollController = ScrollController();@override void initState() { super.initState();_scrollController.addListener((){// 如果滑动到最大的可滚动位置if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent){// 加载更多数据_loadData();}});}// 加载更多数据_loadData() async{await Future.delayed(Duration(seconds: 2));setState(() {List<String> list = List<String>.from(city_names);list.addAll(city_names);city_names = list;});}// 销毁void dispose(){_scrollController.dispose();super.dispose(); }Widget _item(String city){return Container(height: 80,margin: EdgeInsets.only(bottom: 5),alignment: Alignment.center,decoration: BoxDecoration(color: Colors.teal),child: Text(city,style: TextStyle(fontSize: 30,color: Colors.white)),);}List<Widget> _buildList(){return city_names.map((city) => _item(city)).toList(); }Future<Null> _handleRefresh() async {await Future.delayed(Duration(seconds: 2));setState(() {city_names = city_names.reversed.toList();});return null;}@override Widget build(BuildContext context) {return MaterialApp(title: "刷新加载",home: Scaffold(appBar: AppBar(title: Text("下拉刷线"),),body:RefreshIndicator( onRefresh: _handleRefresh,child: ListView(// 设置一个监听控制器controller: _scrollController,children: _buildList(),),),));}}
20-flutter下拉刷新与上拉加载相关推荐
- jquery手机端页面下拉刷新,上划加载更多
手机页面下拉刷新,上划加载更多,IOS不能下拉的问题解决 -转圈的是需要引用样式,代码删除了 上划加载时的样子 <script type="text/javascript"& ...
- 【Android开源控件】SmartRefreshLayout实现下拉刷新,上划加载
- Flutter 21: 图解 ListView 下拉刷新与上拉加载 (三)【RefreshIndicator】
小菜前段时间整理了两种 ListView 的异步加载数据时,下拉刷新与上滑加载更多的方式,每种方式都有自己的优势,网上也有很多大神讲解过 ListView 数据流的种种处理方式,小菜根据实际遇到的情况 ...
- Flutter ListView封装,下拉刷新、上拉加载更多
Flutter ListView封装,下拉刷新.上拉加载更多 封装了Flutter的ListView,只要传递请求数据的方法和绘制item的方法进去就可以绘制ListView,同时支持下拉刷新.上 ...
- Flutter ListView 下拉刷新与上拉加载更多
ListView 下拉刷新与上拉加载更多 import 'dart:async'; import 'package:flutter/material.dart';/*** 有状态StatefulWid ...
- ListView下拉刷新、上拉载入更多之封装改进
在Android中ListView下拉刷新.上拉载入更多示例一文中,Maxwin兄给出的控件比较强大,前面有详细介绍,但是有个不足就是,里面使用了一些资源文件,包括图片,String,layout,这 ...
- 使用MUI框架,模拟手机端的下拉刷新,上拉加载操作。
套用mui官方文档的一句话:"开发者只需关心业务逻辑,实现加载更多数据即可".真的是不错的框架. 想更多的了解这个框架:http://dev.dcloud.net.cn/mui/ ...
- vue使用better-scroll实现下拉刷新、上拉加载
本文目的是为了实现列表的下拉刷新.上拉加载,所以选择了better-scroll这个库. 用好这个库,需要理解下面说明 必须包含两个大的div,外层和内层div 外层div设置可视的大小(宽或者高)- ...
- vue better-scroll 使用 下拉刷新、上拉加载
我的目的是为了实现列表的下拉刷新.上拉加载,所以选择了better-scroll这个库. 用好这个库,需要理解下面说明 必须包含两个大的div,外层和内层div 外层div设置可视的大小(宽或者高)- ...
- Android RecyclerView封装下拉刷新与上拉加载更多
1 scanlistlibrary 基础组件说明(基于 RecyclerView的封装) 基本数据列表(支持下拉刷新与上拉加载更多) 九宫格数据显示封装(支持下拉刷新与上拉加载更多) 瀑布流数据显示封 ...
最新文章
- 分布式缓存Redis Centos下单节点安装
- Socket之TCP服务器【Python】
- shell中的常用通配符,字符类
- 汽车电子嵌入式技术篇(一) -CRC-8和CRC-16算法
- 带你体验云原生场景下 Serverless 应用编程模型
- oracle 等待原因查找,查询引起锁等待的SQL语句
- TypeScript 热度超 C 与 Python、Go 开发收入高、运维吃香,调查了 65000 名开发者有这些发现!...
- Autolayout的简单介绍和示例代码
- adb服务无法开启问题解决方法
- 智慧水务技能——SWMM、最优化与预测理论及三维动态可视化
- 怎么在Windows系统中制作Mac系统U盘启动盘?
- 为知笔记数据备份方法
- [misc]T型知识实践结构的力量
- Codeforces Round #499 (Div. 2) : C. Fly
- Linux下mysql数据库从服务器A只迁移DATA文件夹到服务器B
- Edittext不自动获取焦点的方法
- 不同速度的蚂蚁跑圈相遇问题
- laravel voyager 安装
- 新诗一首:新冠肺炎战役记
- 基于51单片机的数字电容容值测量仪proteus仿真原理图PCB