当前位置: 首页 > news >正文

Flutter ListView 实现不同样式 item

        我们在实际开发中会创建显示不同类型内容的列表。以下是使用 Flutter 创建此类结构的方法:

       1. 创建包含不同类型项目的数据源。

        2. 将数据源转换为小部件列表。

创建包含不同类型项目的数据源

项目类型

要表示列表中不同类型的项目,请为每种类型的项目定义一个类。

abstract class ListItem {Widget buildTitle(BuildContext context);Widget buildSubTitle(BuildContext context);
}class HeadingItem implements ListItem {final String heading;HeadingItem(this.heading);@overrideWidget buildTitle(BuildContext context) {return Text(heading,style: Theme.of(context).textTheme.headlineSmall,);}@overrideWidget buildSubTitle(BuildContext context) {return const SizedBox.shrink();}
}class MessageItem implements ListItem {final String sender;final String body;MessageItem(this.sender, this.body);@overrideWidget buildTitle(BuildContext context) {return Text(sender);}@overrideWidget buildSubTitle(BuildContext context) {return Text(body);}
}

 创建项目列表

大多数情况下,会从互联网或本地数据库获取数据,然后将该数据转换为项目列表。

  final items = List<ListItem>.generate(1000, (i) =>i % 6 == 0 ? HeadingItem('Heading $i') : MessageItem('Sender $i', 'Message body $i'));

 要将每个项目转换为小部件,请使用 ListView.builder() 构造函数。

通常,提供一个构建器函数来检查您正在处理的项目类型,并返回适合该项目类型的小部件。

        child: ListView.builder(itemBuilder: (BuildContext context, int index) {final item = items[index];return ListTile(title: item.buildTitle(context),subtitle: item.buildSubTitle(context),);},itemCount: items.length),

 


http://www.mrgr.cn/news/8312.html

相关文章:

  • print输出不换行 、制表符、while循环制作九九乘法表 复习奥
  • 遍历时修改列表导致错误或意外行为
  • Tita的OKR :产品经理的OKR
  • 云手机解决了TikTok哪些账号运营难题?
  • 硬件面试经典 100 题(81~90)题
  • 在Uni-app中实现计时器效果
  • Flink任务和任务槽详解
  • 企业级WEB应用服务器TOMCAT——超详细攻略
  • 数学建模之数据分析【九】:数据清理总结
  • JavaScript(28)——正则表达式
  • JavaScript 对象属性
  • 免费批量自动校正图片、PDF文档方向工具
  • 【Kotlin设计模式】Kotlin实现单例模式
  • [笔记] 某振动分析软件的可能侦测范围
  • unity游戏开发——(细)深入解析 Unity 地形系统:从基础到高级应用
  • 如何利用命令模式实现一个手游后端架构
  • 进程与程序的学习
  • zookeeper单机安装
  • 【大模型理论篇】Mixture of Experts(混合专家模型, MOE)
  • 180页某项目可视化智能停车场系统技术解决方案WORD