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

Flutter Listview的基本使用

Listview()

前端页面常见的一个以列表方式显示内容的组件。可垂直或水平滚动的列表。

属性说明
scrollDirection设置滚动的方向,取值包括horizontal、vertical
reverse设置是否翻转,默认值false
itemExtent设置滚动方向子元素的长度,垂直方向为高度;水平方向即为宽度
padding设置内边距

请添加图片描述

class MyState extends State {Widget build(BuildContext context) {Random random = Random();List<Widget> list = [];for (int i = 0; i < 100; i++) {int r = random.nextInt(255);int g = random.nextInt(255);int b = random.nextInt(255);Container container = Container(alignment: Alignment.center,child: Text(i.toString()),color: Color.fromARGB(255, r, g, b),padding: EdgeInsets.fromLTRB(0, 20, 0, 20),);list.add(container);}ListView listView = ListView(children: list);return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: listView,);}
}

Listview.builder

一般用于来源于网络的数据。数据量大、数据条数不可预见的情况。
itemCount显示的数据条数。

ListView.builder(itemCount: nums,itemBuilder: (context, index) {return list[index];},);

点击添加按钮每次多显示10条数据。
请添加图片描述

class MyState extends State {int nums = 10;Widget build(BuildContext context) {Random random = Random();List<Widget> list = [];for (int i = 0; i < 100; i++) {int r = random.nextInt(255);int g = random.nextInt(255);int b = random.nextInt(255);Container container = Container(alignment: Alignment.center,child: Text(i.toString()),color: Color.fromARGB(255, r, g, b),padding: EdgeInsets.fromLTRB(0, 20, 0, 20),);list.add(container);}ListView listView2 = ListView.builder(itemCount: nums,itemBuilder: (context, index) {return list[index];},);return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: listView2,floatingActionButton: FloatingActionButton(onPressed: () {setState(() {nums = nums + 10;});},child: Text("添加"),),);}
}

Listview.separated

用于在列表项之间的分割线。

请添加图片描述

class MyState extends State {Widget build(BuildContext context) {Random random = Random();List<Widget> list = [];for (int i = 0; i < 100; i++) {int r = random.nextInt(255);int g = random.nextInt(255);int b = random.nextInt(255);Container container = Container(alignment: Alignment.center,child: Text(i.toString()),color: Color.fromARGB(255, r, g, b),padding: EdgeInsets.fromLTRB(0, 20, 0, 20),);list.add(container);}ListView listView3 = ListView.separated(itemBuilder: (context, index) {return list[index];},separatorBuilder: (context, index) {return Container(width: MediaQuery.of(context).size.width,height: 5,color: Colors.white,);},itemCount: list.length,);return Scaffold(appBar: AppBar(title: Text(""), centerTitle: true),body: listView3,);}
}
http://www.xdnf.cn/news/17322.html

相关文章:

  • Cursor手机版:一半是神,一半是坑
  • 【能碳建设2】把“能碳计算”做成可配置、可演示的系统
  • 【线性代数】线性方程组与矩阵——(2)矩阵与线性方程组的解
  • 深入理解 @Schema 注解:让你的 API 文档自动 “说话”
  • 消息队列核心功能和消息队列做异步的优势
  • NX二次开发——面有关的函数
  • Datawhale AI夏令营学习
  • Kubernetes 集群密钥与机密管理方案对比分析:Vault、Sealed Secrets 与 AWS KMS
  • C++方向知识汇总(一)
  • 可泛化双手操作机器人基准测试:CVPR 2025 MEIS 研讨会 RoboTwin 双臂协作挑战赛
  • SwiftUI 登录页面键盘约束冲突与卡顿优化全攻略
  • 大语言模型提示工程与应用:提示工程-提升模型准确性与减少偏见的方法
  • node.js 零基础入门
  • mfc按钮点击事件没有触发,且程序卡死
  • VGMP状态机解析
  • 【GitHub小娱乐】GitHub个人主页ProFile美化
  • 交 换
  • 分享一个基于Spark的眼科疾病临床数据可视化分析与应用研究Hadoop基于Vue和Echarts的眼科疾病统计数据交互式可视化系统的设计与实现
  • HarvardX TinyML小笔记1(番外2:神经网络)
  • FreeRTOS学习笔记:任务通知和软件定时器
  • gRPC for C++ 实战全流程 —— 从零搭建到同步/异步服务
  • 第二十八天(cookiesessiontokeny验证)
  • LeetCode 分类刷题:209. 长度最小的子数组
  • 目标检测数据集 - 无人机检测数据集下载「包含COCO、YOLO两种格式」
  • 【工具变量】地级市固定资产投资数据(2000-2023年)
  • 开发手札:UnrealEngine和Unity3d坐标系问题
  • Kubelet 探针如何选择 IP:status.PodIP 溯源与“同 Pod 两个 IP“现象解析
  • Go 实用指南:如何执行 Skyline 查询(Pareto 最优点筛选)
  • PID学习笔记1
  • 基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】