首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Flutter之ListView使用【一】

Flutter之ListView使用【一】

作者头像
贺公子之数据科学与艺术
发布2025-12-17 21:18:14
发布2025-12-17 21:18:14
1850
举报
ListView 的基本用法

ListView 是 Flutter 中用于展示一组连续视图元素的控件,支持垂直或水平方向滚动。适用于需要展示大量数据的场景,如通信录、商家列表等。

默认构造函数 适用于少量子 Widget 的场景,一次性创建所有子 Widget,性能较差。 示例代码:

代码语言:javascript
复制
ListView(
  children: <Widget>[
    ListTile(leading: Icon(Icons.map), title: Text('Map')),
    ListTile(leading: Icon(Icons.mail), title: Text('Mail')),
    ListTile(leading: Icon(Icons.message), title: Text('Message')),
  ]
);

水平滚动 ListView 通过设置 scrollDirection: Axis.horizontal 实现水平滚动。 示例代码:

代码语言:javascript
复制
ListView(
  scrollDirection: Axis.horizontal,
  itemExtent: 140,
  children: <Widget>[
    Container(color: Colors.black),
    Container(color: Colors.red),
    Container(color: Colors.blue),
  ]
);
ListView.builder 构造函数

适用于大量子 Widget 的场景,动态创建子 Widget,提升性能。 关键参数:

  • itemBuilder:子 Widget 的创建方法。
  • itemCount:列表项数量(可选,若为 null 则为无限列表)。

示例代码:

代码语言:javascript
复制
ListView.builder(
  itemCount: 100,
  itemExtent: 50.0,
  itemBuilder: (context, index) => ListTile(
    title: Text("title $index"),
    subtitle: Text("body $index")
  )
);

性能优化建议 对于定高的列表项,建议设置 itemExtent,避免动态计算高度带来的性能损耗。

ListView.separated 构造函数

支持自定义分割线,通过 separatorBuilder 动态设置分割线样式。 示例代码:

代码语言:javascript
复制
ListView.separated(
  itemCount: 100,
  separatorBuilder: (context, index) => 
    index % 2 == 0 ? Divider(color: Colors.green) : Divider(color: Colors.red),
  itemBuilder: (context, index) => ListTile(
    title: Text("title $index"),
    subtitle: Text("body $index")
  )
);
CustomScrollView 的使用

用于解决多 ListView 嵌套时滑动效果不一致的问题。 Sliver 的概念 将独立的可滚动控件(如 SliverList、SliverAppBar)统一管理,确保滑动效果一致。

滚动视差示例 通过 CustomScrollView 实现多层背景以不同速度移动的视差效果。 示例代码:

代码语言:javascript
复制
CustomScrollView(
  slivers: <Widget>[
    SliverAppBar(title: Text('视差滚动示例')),
    SliverList(
      delegate: SliverChildBuilderDelegate(
        (context, index) => ListTile(title: Text("Item $index")),
        childCount: 50
      )
    )
  ]
);
总结
  • ListView:适用于少量子 Widget,简单易用。
  • ListView.builder:适用于大量子 Widget,动态创建提升性能。
  • ListView.separated:支持自定义分割线。
  • CustomScrollView:统一管理多个可滚动控件,实现复杂交互效果。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ListView 的基本用法
  • ListView.builder 构造函数
  • ListView.separated 构造函数
  • CustomScrollView 的使用
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档