Flutter ListView ListView.build ListView.separated_flutter listview.separated和listview.builder-程序员宅基地

理解为ListView 的三种形式吧

ListView 默认构造

但是这种方式创建的列表存在一个问题:对于那些长列表或者需要较昂贵渲染开销的子组件,即使还没有出现在屏幕中但仍然会被ListView所创建,这将是一项较大的开销,使用不当可能引起性能问题甚至卡顿

直接返回的是每一行的Widget,相当于ios的row。行高按Widget(cell)高设置

ListView.build 就和ios的tableview差不多了

需要设置itemCount,itemBuilder:

ListView.separated 每一行都加了下划线的ListView.build,当然下划线也可以用上面两种模式直接自己画

class FriendList extends StatelessWidget {
  const FriendList({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ListView.separated(
      itemCount: friendListData.length,
      itemBuilder: (context, index) {
        return FriendCard(data: friendListData[index]);
      },
      separatorBuilder: (context, index) {
        return Divider(
          height: .5,
          indent: 75,
          color: Color(0xFFDDDDDD),
        );
      },
    );
  }
}

 

Flutter还提供了下拉刷新的组件:

RefreshIndicator

参考代码

class PullDownRefreshList extends StatefulWidget {
  const PullDownRefreshList({Key key}) : super(key: key);

  @override
  _PullDownRefreshListState createState() => _PullDownRefreshListState();
}

class _PullDownRefreshListState extends State<PullDownRefreshList> {

  Future onRefresh() {
    return Future.delayed(Duration(seconds: 1), () {
      Toast.show('当前已是最新数据', context);
    });
  }

  @override
  Widget build(BuildContext context) {
    return RefreshIndicator(
      onRefresh: this.onRefresh,
      child: ListView.separated(
        itemCount: friendListData.length,
        itemBuilder: (context, index) {
          return FriendCard(data: friendListData[index]);
        },
        separatorBuilder: (context, index) {
          return Divider(
            height: .5,
            indent: 75,
            color: Color(0xFFDDDDDD),
          );
        },
      ),
    );
  }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ant1239/article/details/103278967

智能推荐

小程序支付类型接入京东支付_对接京东口令支付-程序员宅基地

文章浏览阅读834次,点赞7次,收藏7次。关于接入京东支付的若干细节_对接京东口令支付

Java使用poi的XWPFDocument 实现word模板动态添加表格行并进行变量替换_xwpfdocument获取表格中${}并赋值-程序员宅基地

文章浏览阅读1.8k次,点赞11次,收藏12次。Java使用poi的XWPFDocument 实现word模板动态添加表格行并进行变量替换_xwpfdocument获取表格中${}并赋值

文心一言 VS 讯飞星火 VS chatgpt (220)-- 算法导论16.3 2题-程序员宅基地

文章浏览阅读1.2k次,点赞24次,收藏28次。要证明一棵不满的二叉树不可能对应一个最优前缀码,我们可以从最优前缀码的性质和二叉树的结构特点出发。首先,我们来明确一下几个关键概念:前缀码:一种编码方式,其中任何编码都不是其他编码的前缀。这样,解码器可以在读取编码时,一旦识别出一个完整的编码,就知道下一个编码的开始位置。最优前缀码:在给定字符集和字符频率的情况下,使平均编码长度最小的前缀码。二叉树:每个节点最多有两个子节点的树。在表示前缀码的上下文中,二叉树的每个内部节点通常表示一个字符,而从根节点到叶节点的路径表示该字符的编码。

weblogic快速传jsp木马_jsp马上传文件-程序员宅基地

文章浏览阅读1.5k次,点赞3次,收藏6次。weblogic快速传jsp木马_jsp马上传文件

1*1大小的卷积核的作用与功能_卷积核大小为1-程序员宅基地

1*1卷积核被用于通道变换和特征选择,提高了神经网络的表达能力和泛化能力,是一种非常有用的卷积操作。

vue使用vue-print 多页打印带表头_vue3 printjs 分页打印保留表头-程序员宅基地

文章浏览阅读398次,点赞8次,收藏6次。vue使用vue-print 多页打印带表头_vue3 printjs 分页打印保留表头

随便推点

【UE4从零开始 021】控件类型介绍_ue用户控件插件有哪些-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏17次。1、Common选项说明边框(Border)边框是容器控件,可以包含一个子控件,提供使用边框图像和可调节的填补将其包围起来的机会。按钮(Button)按钮是单子项、可点击的Primitive控件,它可实现基本交互。你可将任何其他控件放入按钮控件中,以在UI中创建一个更复杂且有趣的可点击元素。复选框(Check Box)借助复选框(Check Box)控件,..._ue用户控件插件有哪些

备份整个硬盘为镜像文件-程序员宅基地

文章浏览阅读833次,点赞9次,收藏5次。使用DiskGenius软件可以把整个硬盘的内容备份到一个镜像文件中。备份磁盘为镜像文件执行步骤1、2,还原镜像文件为磁盘执行步骤1、3。_备份整个硬盘为镜像

【嵌入式系统设计与应用总复习】_在某工程中,要求设置一绝对地址为0x987a-程序员宅基地

文章浏览阅读1.1k次。虽然貌似是LDR的升级,但是,千万要注意,这个指令运行的方向和LDR是不一样的,是从左到右运行的。其中堆栈指针一般对应于SP,注意SP是寄存器R13,实际用到的却是R13中的内存地址,只是该指令没有写为[R13],同时,LDM指令中寄存器和内存地址的位置相对于前面两条指令改变了,下面的。意思为:把sp指向的3个连续地址段(应该是3*4=12字节(因为为r0,r1,r2都是32位))中的数据拷贝到r0,r1,r2这3个寄存器中去(如果这个地方还不懂的话,可以参看我文章开头提到的链接,里面有详细的图解)_在某工程中,要求设置一绝对地址为0x987a

[Pytorch函数]loss,loss.cpu().data 及 loss.cpu().detach().numpy()等辨析_pytorch loss.cpu-程序员宅基地

文章浏览阅读4.5k次,点赞6次,收藏8次。print('1111',loss)print('2222',loss.data)#tensor且GPUprint('3333',loss.cpu())print('4444',loss.cpu().data)#tensor且CPU# print('5555',loss.cpu().data[0])#报错 IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Pyth_pytorch loss.cpu

2021-06-23程序人生-Hello’s P2P_.o编译后的目标文件汇编-程序员宅基地

文章浏览阅读97次。这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar_.o编译后的目标文件汇编

Linux安装Jdk11步骤_linux jdk11-程序员宅基地

文章浏览阅读329次。【代码】Linux安装Jdk11步骤。_linux jdk11

推荐文章

热门文章

相关标签