Flutter 实现下拉刷新上拉加载的示例代码

 更新时间:2019年12月04日 09:21:37   作者:程序园中猿  
这篇文章主要介绍了Flutter 实现下拉刷新上拉加载的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文介绍了Flutter 实现下拉刷新上拉加载的示例代码,分享给大家,具体如下:

 

使用方法

添加依赖

dependencies:
 pull_to_refresh: ^1.5.7

导入包

import 'package:pull_to_refresh/pull_to_refresh.dart';

页面代码样例

class _MyHomePageState extends State<MyHomePage> {
 List<String> items = ["1", "2", "3", "4", "5", "6", "7", "8"];
 RefreshController _refreshController =
 RefreshController(initialRefresh: false);

 void _onRefresh() async {
  // monitor network fetch
  await Future.delayed(Duration(milliseconds: 1000));
  // if failed,use refreshFailed()
  _refreshController.refreshCompleted();
 }

 void _onLoading() async {
  // monitor network fetch
  await Future.delayed(Duration(milliseconds: 1000));
  // if failed,use loadFailed(),if no data return,use LoadNodata()
  items.add((items.length + 1).toString());
  if (mounted) setState(() {});
  _refreshController.loadComplete();
 }

 @override
 Widget build(BuildContext context) {
  return Scaffold(
   body: SmartRefresher(
    enablePullDown: true,
    enablePullUp: true,
    header: WaterDropHeader(),
    footer: CustomFooter(
     builder: (BuildContext context, LoadStatus mode) {
      Widget body;
      if (mode == LoadStatus.idle) {
       body = Text("pull up load");
      } else if (mode == LoadStatus.loading) {
       body = CircularProgressIndicator();
      } else if (mode == LoadStatus.failed) {
       body = Text("Load Failed!Click retry!");
      } else if (mode == LoadStatus.canLoading) {
       body = Text("release to load more");
      } else {
       body = Text("No more Data");
      }
      return Container(
       height: 55.0,
       child: Center(child: body),
      );
     },
    ),
    controller: _refreshController,
    onRefresh: _onRefresh,
    onLoading: _onLoading,
    child: ListView.builder(
     itemBuilder: (c, i) => Card(child: Center(child: Text(items[i]))),
     itemExtent: 100.0,
     itemCount: items.length,
    ),
   ),
  );
 }
}

完整源代码

https://gitee.com/cxyzy1/flutter_pulldown_refresh

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android开发中通过手机号+短信验证码登录的实例代码

    Android开发中通过手机号+短信验证码登录的实例代码

    最近在开发一个android的项目,需要通过获取手机验证码来完成登录功能,接下来通过实例代码给大家分享手机号+短信验证码登录的实现方法,需要的的朋友参考下吧
    2017-05-05
  • 怎样才能导入别人的android项目不再报错

    怎样才能导入别人的android项目不再报错

    每次看到好的项目都想拿过来看看源码,可是导入以后各种报错怎么办?源码有问题吗?有这种可能,但更多的可能性是你没有正确导入这个项目
    2021-08-08
  • Android应用强制更新APP的示例代码

    Android应用强制更新APP的示例代码

    本篇文章主要介绍了Android应用强制更新APP的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Android拨打电话功能实例详解

    Android拨打电话功能实例详解

    这篇文章主要介绍了Android拨打电话功能,结合实例形式较为详细的分析了Android实现拨打电话功能的具体步骤与功能代码,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-02-02
  • Android计算器简单逻辑实现实例分享

    Android计算器简单逻辑实现实例分享

    这篇文章主要介绍了Android计算器简单逻辑实现实例,有需要的朋友可以参考一下
    2014-01-01
  • Android去除烦人的默认闪退Dialog

    Android去除烦人的默认闪退Dialog

    这篇文章主要为大家详细介绍了Android去除烦人的默认闪退Dialog的相关方法,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android Fragment的使用方法(翻译)

    Android Fragment的使用方法(翻译)

    这篇文章主要介绍了Android Fragment的使用方法,官方文档的翻译,需要的朋友可以参考下
    2015-03-03
  • Android实现WIFI和GPRS网络的切换

    Android实现WIFI和GPRS网络的切换

    这篇文章主要介绍了Android实现WIFI和GPRS网络的切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 关于Android SDCard存储的问题

    关于Android SDCard存储的问题

    本篇文章小编为大家介绍,关于Android SDCard存储的问题。需要的朋友参考下
    2013-04-04
  • 深入理解Android中的xmlns:tools属性

    深入理解Android中的xmlns:tools属性

    关于xmlns:tools属性的介绍网上有很多,小编觉得有必要整理一篇介绍较为详细的内容给大家,下面这篇文章就很深入的介绍了关于Android中的xmlns:tools属性,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12

最新评论