第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Flutter 實(shí)現(xiàn)上拉加載更多、下拉刷新

標(biāo)簽:
Android

webp

下拉刷新


webp

上拉加载更多

实现分析

下拉刷新
下拉刷新使用的是 RefreshIndicator组件来实现,使用伪代码如下:

  @override
  Widget build(BuildContext context) {    return new Scaffold(
        body: new RefreshIndicator(
          onRefresh: _handleRefresh,
        ));
  }

body中添加RefreshIndicator 组件,在 onRefresh中实现下拉刷新的操作,这里的_handleRefresh方法代码如下:

  Future  _handleRefresh() async {    // 延迟3秒后添加新数据, 模拟网络加载
    await Future.delayed(Duration(seconds: 3), () {
      setState(() {
        _suggestions.clear();
        _suggestions.addAll(generateWordPairs().take(20));        return _suggestions;
      });
    });
  }

上拉加载更多
加载更多的组件在Flutter中是没有提供的,所以我们只能自己实现,在以前Android 中上拉加载更多可以通过监听滑动来实现,这里应该也是可以这么操作的。

FlutterListView中有一个ScrollController属性,通过监听这个滑动来实现加载更多。

实现步骤如下:

  • 定义ScrollController _scrollController = new ScrollController();

  • ListView 的列表中添加controller: _scrollController,

 // listView 列表
  Widget _buildSuggestions() {    return new ListView.builder(
      padding: const EdgeInsets.all(16.0),
      itemCount: _suggestions.length + 1,
      itemBuilder: (context, i) {        // 在每一列之前,添加一个1像素高的分隔线widget
        if (i.isOdd) return new Divider();        // 最后一个单词对
        if (i == _suggestions.length) {          return _buildLoadMore();
        } else {          return _buildRow(_suggestions[i]);
        }
      },
      controller: _scrollController,
    );
  • initState()方法中监听滑动,如果滑动到最后则获取加载更多的数据

@override
  void initState() {    super.initState();
    _suggestions.addAll(generateWordPairs().take(20));
    _scrollController.addListener(() {      if (_scrollController.position.pixels == 
_scrollController.position.maxScrollExtent) {
        _getMoreData();
      }
    });
  }

_getMorData方法实现如下:

  // 加载更多
  Future _getMoreData() async {    await Future.delayed(Duration(seconds: 3), () {
      setState(() {        // 这里是本地数据,因此在无网的时候也会加载数据
        _suggestions.addAll(generateWordPairs().take(10));        return _suggestions;
      });
    });
  }

至此,下拉刷新和上拉加载就实现完成了,欢迎大家一起交流,共同进步。



作者:_龙衣
链接:https://www.jianshu.com/p/0101e821aa11


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消