Flutter---ListView中放添加按钮
效果图关键代码Widget buildListView(){ return ListView.separated( separatorBuilder: (context,index) const SizedBox.shrink(), itemCount: fruits.length 1, itemBuilder: (context,index){ if(index fruits.length){ //根据下标选择生成不同的UI return _buildAddButton(); } if(index fruits.length){ return _buildListItem(name: fruits[index]); } } ); }代码实例import package:flutter/material.dart; class DemoPage extends StatefulWidget { const DemoPage({super.key}); override StateDemoPage createState() _DemoPageState(); } class _DemoPageState extends StateDemoPage { ListString fruits [apple,pear,banana,strawberry]; override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.blue.shade50, appBar: AppBar( leading: IconButton(onPressed: (){ Navigator.pop(context); }, icon: Icon(Icons.arrow_back_ios)), ), body: Container( height: double.infinity, width: double.infinity, margin: EdgeInsets.symmetric(vertical: 40), //color: Colors.pink, child:buildListView(), ) ); } Widget buildListView(){ return ListView.separated( separatorBuilder: (context,index) const SizedBox.shrink(), itemCount: fruits.length 1, itemBuilder: (context,index){ if(index fruits.length){ return _buildAddButton(); } if(index fruits.length){ return _buildListItem(name: fruits[index]); } } ); } Widget _buildListItem({ required String name }){ return Container( height: 50, margin: EdgeInsets.symmetric(horizontal: 20,vertical: 5), decoration: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(20) ), child: Center( child: Text(name,style: TextStyle(color: Colors.white),), ), ); } Widget _buildAddButton(){ return GestureDetector( onTap: (){ setState(() { fruits.add(new fruit); }); }, child: Container( height: 60, width: 60, decoration: BoxDecoration( color: Colors.blue, shape: BoxShape.circle ), child: Center( child: Text(添加,style: TextStyle(color: Colors.red),), ), ), ); } }

相关新闻

Maven安装配置核心原理与阿里云镜像源精准配置指南

Maven安装配置核心原理与阿里云镜像源精准配置指南

1. 这不是“装个软件”——Maven安装配置的本质是构建环境的主权交接 你点开这个标题,大概率正卡在某个Java项目的编译环节:IDEA里红着一串“Could not resolve dependencies”,命令行敲 mvn clean compile 卡在Downloading…半小时不动&am…

2026/7/16 10:10:53 阅读更多 →
pacemaker-mgmt终极指南:从入门到精通的集群管理控制台全解析

pacemaker-mgmt终极指南:从入门到精通的集群管理控制台全解析

pacemaker-mgmt终极指南:从入门到精通的集群管理控制台全解析 【免费下载链接】pacemaker-mgmt Management Console for Pacemaker 项目地址: https://gitcode.com/openeuler/pacemaker-mgmt 前往项目官网免费下载:https://ar.openeuler.org/ar/ …

2026/7/16 10:04:47 阅读更多 →
Multisim无源蜂鸣器仿真:从基础连接到旋律生成的完整指南

Multisim无源蜂鸣器仿真:从基础连接到旋律生成的完整指南

1. 先搞清楚无源蜂鸣器在 Multisim 里到底怎么用无源蜂鸣器在 Multisim 仿真中最容易让人困惑的点是:它不像有源蜂鸣器那样给电就响,必须靠外部电路提供振荡信号才能发声。很多人第一次用的时候直接接直流电源,发现完全没声音,就以…

2026/7/16 10:02:45 阅读更多 →

最新新闻

HoRain云--Electron 实战项目

HoRain云--Electron 实战项目

通过实战项目,可以加深对 Electron 各种特性的理解,包括窗口管理、IPC 通信、文件操作、数据存储和界面优化。项目一:桌面笔记应用功能设计创建、编辑、删除笔记自动保存与本地存储支持多窗口同时编辑界面简洁,提供 Markdown 渲染…

2026/7/16 10:57:19 阅读更多 →
【AI大模型】涌现能力:大模型为什么参数越大越聪明

【AI大模型】涌现能力:大模型为什么参数越大越聪明

【AI大模型】涌现能力:大模型为什么参数越大越聪明(含实操代码) 在AI大模型迭代升级的过程中,所有人都能直观发现一个核心规律:模型参数规模越小,能力越平庸,只能完成简单的分词、分类、短句生成任务;而当参数规模突破百亿、千亿级别后,模型会突然解锁海量新能力,逻…

2026/7/16 10:55:19 阅读更多 →
CANN/asc-devkit:SetFixPipeClipRelu寄存器配置

CANN/asc-devkit:SetFixPipeClipRelu寄存器配置

# SetFixPipeClipRelu 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址…

2026/7/16 10:55:19 阅读更多 →
C++内存池原理与性能优化实践

C++内存池原理与性能优化实践

1. 为什么需要内存池?在C/C开发中,我们最常听到的崩溃原因就是"内存泄漏"和"内存碎片"。每次直接调用malloc/free或new/delete时,操作系统都需要在堆内存中寻找合适大小的空闲块。当频繁进行小块内存的申请释放时&#x…

2026/7/16 10:53:18 阅读更多 →
Toggl Track 浏览器扩展架构解析:从时间跟踪到深度集成

Toggl Track 浏览器扩展架构解析:从时间跟踪到深度集成

Toggl Track 浏览器扩展架构解析:从时间跟踪到深度集成 【免费下载链接】track-extension Toggl Track browser extension for Chrome and Firefox 项目地址: https://gitcode.com/gh_mirrors/tr/track-extension Toggl Track 浏览器扩展作为开源的时间跟踪工…

2026/7/16 10:53:18 阅读更多 →
开源桌面伴侣框架:打造智能交互的数字生活新体验

开源桌面伴侣框架:打造智能交互的数字生活新体验

开源桌面伴侣框架:打造智能交互的数字生活新体验 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 你是否曾想象过,桌面上的二次元角色不仅能与你互动&#…

2026/7/16 10:53:18 阅读更多 →

日新闻

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

本篇深入剖析 ImportantDays 项目的数据持久化方案——基于 HarmonyOS ArkData 模块的 Preferences 轻量级存储,以及 PreferenceUtil 工具类的单例封装。一、HarmonyOS 数据存储方案对比 HarmonyOS 提供了多种数据存储方案:方案适用场景特点Preferences轻…

2026/7/16 0:08:27 阅读更多 →
Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

2026/7/16 0:08:27 阅读更多 →
鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

从鸿蒙 7(HarmonyOS NEXT)开始,官方全面完成了从 ohos.* 零散模块到 kit.* 领域套件的体系重构。对开发者来说,第一道门槛不是 API 用法变化,而是统一的导入规范——旧体系默认导入、解构导入混用的混乱局面被彻底终结…

2026/7/16 0:10:29 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/15 21:09:01 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/15 19:42:20 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/15 17:52:08 阅读更多 →

月新闻