refresh_wow 0.0.3

  • Example
  • Installing
  • Versions
  • 70


#####自持自定义头,尾. #####加载更多.

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing package code, view the documentation. image


  • itemData: 数据集合 []
  • footerItemCount: 底部控件的个数 2
  • headerItemCount: 头部控件个数2,
  • itemBuilder: (BuildContext context, int index, String itemData) 构建item
  • headerBuilder: (BuildContext context, int index) 构建头部控件
  • footerBuilder: (BuildContext context, int index) 构建底部控件
  • onRefresh: _handleRefresh, 刷新
  • onLoadMore: !hasMore ? _handleLoadMore : null,) 加载更多,为null时候标示没有更多数据


  • var refreshingShowText = '正在刷新数据';
  • var errShowText = '数据刷新失败\n点击重试';
  • var doneShowText = '⁽⁽ଘ( ˊᵕˋ )ଓ⁾⁾';
  • var loadMoreTextStyle = new TextStyle(); ####可以refresh_config().errShowText='自定义错误'修改

[0.0.1] - TODO: Add release date.

  • TODO: Describe initial release.


  • 修复一打开界面就加载更多的bug


import 'dart:async';

import 'package:flutter/material.dart';
import 'package:refresh_wow/refresh_wow.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        // This is the theme of your application.
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or press Run > Flutter Hot Reload in IntelliJ). Notice that the
        // counter didn't reset back to zero; the application is not restarted.
      home: new MyHomePage(title: 'Flutter Demo Home Page'),

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  _MyHomePageState createState() => new _MyHomePageState();

Iterable<int> get positiveIntegers sync* {
  int i = 0;
  while (true) yield i++;

class _MyHomePageState extends State<MyHomePage> {

  List<String>list = positiveIntegers
      .skip(1) // don't use 0
      .take(100) // take 10 numbers
      .toList().map((i) => "我是初始数据$i").toList();
  bool hasMore = false;

  Future<Null> _handleRefresh() {
    final Completer<Null> completer = new Completer<Null>();
    new Timer(new Duration(milliseconds: 500), () {
      setState(() {
        list = positiveIntegers
            .skip(1) // don't use 0
            .take(100) // take 10 numbers
            .toList().map((i) => "我是初始数据$i").toList();

    return completer.future;

  int error = 0;

  Future<Null> _handleLoadMore() {
    final Completer<Null> completer = new Completer<Null>();
    new Timer(new Duration(milliseconds: 1300), () {
      if (error != 1) {
        setState(() {
              .skip(1) // don't use 0
              .take(70) // take 10 numbers
              .toList().map((i) => "我是更多数据$i").toList());
          hasMore = list.length > 300;
      } else {
//        throw new Exception('获取数据失败');
    return completer.future;

  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return new Scaffold(
        appBar: new AppBar(
          // Here we take the value from the MyHomePage object that was created by
          // the method, and use it to set our appbar title.
          title: new Text(widget.title),
        body: new RefreshListView(
          itemData: this.list,
          footerItemCount: 2,
          headerItemCount: 2,
          itemBuilder: (BuildContext context, int index, String itemData) {
            return new Text('itemData: $itemData index: $index');
          headerBuilder: (BuildContext context, int index) {
            return new Text('header: $index');
          footerBuilder: (BuildContext context, int index) {
            return new Text('footer: $index');
          onRefresh: _handleRefresh,
          onLoadMore: !hasMore ? _handleLoadMore : null,)

1. Depend on it

Add this to your package's pubspec.yaml file:

  refresh_wow: "^0.0.3"

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter packages get

Alternatively, your editor might support packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:refresh_wow/refresh_wow.dart';
Version Uploaded Documentation Archive
0.0.3 Mar 23, 2018 Go to the documentation of refresh_wow 0.0.3 Download refresh_wow 0.0.3 archive
0.0.2 Mar 23, 2018 Go to the documentation of refresh_wow 0.0.2 Download refresh_wow 0.0.2 archive
0.0.1 Mar 22, 2018 Go to the documentation of refresh_wow 0.0.1 Download refresh_wow 0.0.1 archive


We analyzed this package on Apr 23, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.49.0
  • pana: 0.10.6
  • Flutter: 0.3.2


Describes how popular the package is relative to other packages. [more]
41 / 100
Code health derived from static analysis. [more]
98 / 100
Reflects how tidy and up-to-date the package is. [more]
100 / 100
Overall score:
Weighted score of the above. [more]
Learn more about scoring.


Detected platforms: Flutter

References Flutter, and has no conflicting libraries.


  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 3 hints.

    Run flutter format to format lib/load_more_widget.dart.

    Run flutter format to format lib/refresh_config.dart.

    Similar analysis of the following files failed:

    • lib/refresh_wow.dart (hint)


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.23.0 <2.2.0
flutter 0.0.0
Transitive dependencies
collection 1.14.6 1.14.9
meta 1.1.2
sky_engine 0.0.99
typed_data 1.1.5
vector_math 2.0.6
Dev dependencies
test ^0.12.0