效果图:

代码+注释:

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';void main() {runApp(new MyApp(//  List.generate构造函数 —— 生成拥有1000个字符串的列表items: new List<ListItem>.generate(1000,(i) => i % 6 == 0       //根据规律: 每一个标题后面会跟着五条内容? new HeadingItem("Heading $i")     //标题类型: new MessageItem("Sender $i", "Message body $i"),    //内容类型),));
}class MyApp extends StatelessWidget {final List<ListItem> items;MyApp({Key key, @required this.items}) : super(key: key);@overrideWidget build(BuildContext context) {final title = 'Mixed List';return new MaterialApp(title: title,home: new Scaffold(appBar: new AppBar(title: new Text(title),),body: new ListView.builder(// Let the ListView know how many items it needs to build// 让ListView知道需要构建多少个项目itemCount: items.length,// Provide a builder function. This is where the magic happens! We'll//  提供构建器功能。 这就是魔术发生的地方! 好// convert each item into a Widget based on the type of item it is.//  根据项目类型将每个项目转换为Widget。itemBuilder: (context, index) {final item = items[index];      //得到具体的itemsif (item is HeadingItem) {    //是否为标题类型return new ListTile(title: new Text(item.heading,style: Theme.of(context).textTheme.headline,),);} else if (item is MessageItem) { //是否为内容类型return new ListTile(title: new Text(item.sender),subtitle: new Text(item.body),);}},),),);}
}// The base class for the different types of items the List can contain
// 列表可以包含的不同类型的项目的基类
abstract class ListItem {}// A ListItem that contains data to display a heading
// 一个ListItem,其中包含显示标题的数据
class HeadingItem implements ListItem {final String heading;HeadingItem(this.heading);
}// A ListItem that contains data to display a message
// 一个ListItem包含显示消息的数据
class MessageItem implements ListItem {final String sender;final String body;MessageItem(this.sender, this.body);
}

喜欢记得点个赞哟,我是王睿,很高兴认识大家!

更多原理请参考谷歌官网:使用不同类型的子项创建列表

Flutter学习 — 使用不同类型的子项创建列表相关推荐

  1. Flutter 学习

    Flutter 学习 参照:https://book.flutterchina.club/ 参照:https://flutter.cn/docs/development/platform-integr ...

  2. Flutter学习之Dart语法特性

    一.前言 第一天把Flutter环境搭建了,并简单实现第运行第一个Flutter项目,感觉很不错,一些基本操作和原生体验差不多.用Flutter框架写过App项目的开发者都知道,Flutter是一个使 ...

  3. Flutter学习指南:文件、存储和网络

    Flutter学习指南 交互.手势和动画 UI布局和控件 熟悉Dart语言 编写第一个应用 开发环境搭建 本篇文章我们先学习 Flutter IO 相关的基础知识,然后在 Flutter学习指南:交互 ...

  4. Flutter学习日记之底部导航栏BottomNavigationBar组件的使用

    本文地址:https://blog.csdn.net/qq_40785165/article/details/116953235,转载需附上此地址 大家好,我是小黑,一个还没秃头的程序员~~~ 空袋子 ...

  5. iOS程序猿的flutter学习之路

    日常学习Flutter开发的积累 推荐一些平时自己学习Flutter开发当中接触到的优秀文章 -------------------------基础知识 ----------------------- ...

  6. Flutter学习之入门和体验

    作者:真丶深红骑士 链接: https://juejin.im/user/597247ad5188255aed1fbba6 本文由作者授权发布. 01前言 1.什么是Flutter 上周我的一位微信好 ...

  7. Flutter学习总纲教程

    Flutter学习总纲教程 Flutter Widget 目录 准备 学习Flutter之前,必须要了解(不需要多么精通,但至少要了解)Dart的基础特性. Dart基础特性  ·  Dart 是 G ...

  8. Flutter学习之路(一)

    作为一名实际开发近10年的Android程序员,对于前端技术不断的更新,有着自己的迷茫,不过身边有人在不断学习和进步,倍感压力. 闲言少叙,开始正题,众所周知flutter是谷歌的移动UI框架,可以快 ...

  9. (一)Flutter 学习之 Dart 变量和类型系统

    Flutter系列文章目录导读: (一)Flutter学习之Dart变量和类型系统 (二)Flutter学习之Dart展开操作符 和 Control Flow Collections (三)Flutt ...

  10. Flutter 学习 - Widget 之 对话框

    前言 本篇我们介绍Flutter中常用的对话框,先看下效果图 正文 Flutter 中对话框也是Widget,有两种显示对话框的方法,对于对画框对使用还有特殊要求,我们后面介绍,先来看下这两种方法 1 ...

最新文章

  1. 设计模式5-抽象工厂模式
  2. Unieap3.5错误收集
  3. php sql 条件拼组_ThinkPHP框架SQL操作链式写法原理(浅显易懂)
  4. 用CSS实现首字下沉效果,仿word的首字下沉
  5. MySQL—表中添加数据
  6. Webpack —— tree-starking 解析
  7. [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet]
  8. 如何给mac地址赋值_交换机工作基础——MAC地址表的构成与安全
  9. 表数据都删了一半,可我的表文件咋还是那么大
  10. 利用TCN网络实现MNIST手写体数据集的识别
  11. ACL2021 | 知识对比:基于外部知识的图神经虚假新闻检测
  12. 面向 5G 的新型多载波传输技术比较
  13. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(6):音频
  14. 模电基础-1:分立器件
  15. Java接入支付宝提现
  16. c语言编程仓鼠吃豆子,动态规划之仓鼠吃豆子 - osc_8quu62cg的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 关于mysql的题目_关于MySQL的经典例题50道 答案参考
  18. 用python按比例调整图片尺寸
  19. 使用计算机辐射最大,台式电脑哪里辐射最大
  20. 用凯泽窗设计FIR滤波器的优点

热门文章

  1. Vue.nextTick DOM 更新循环结束之后执行延迟回调
  2. Python学习之购物车
  3. [转]手把手教你搭建Hive Web环境
  4. 用递归的方式处理数组 把递归方法方法定义到数组的原型上 (这是一次脑洞大开的神奇尝试)...
  5. JavaWeb开发中的乱码问题
  6. Objective-C 协议(protocol)
  7. MFC之添加PNG,JPG图片
  8. Jsp 【项目路径】
  9. 【干货】400+页的《面向机器学习的数学》pdf
  10. 【CNN】四张图彻底搞懂CNN反向传播算法(通俗易懂)