Flutter 常用组件大全

devtools/2025/3/14 8:34:50/

Flutter 常用组件大全

Flutter 提供了丰富的组件来构建 UI,以下是常见的组件,按 功能类别 分类。


1️⃣ 基础布局组件

组件作用示例
Container盒子容器,支持装饰、边距、大小Container(width: 100, height: 100, color: Colors.red)
Padding内边距Padding(padding: EdgeInsets.all(10), child: Text("Hello"))
Center居中对齐Center(child: Text("居中"))
Align位置对齐Align(alignment: Alignment.bottomRight, child: Text("右下角"))
SizedBox固定大小的空白间距SizedBox(height: 20)
Expanded让子组件填充剩余空间Expanded(child: Text("填充空间"))
Flexible控制子组件弹性大小Flexible(child: Text("弹性大小"))
Padding(padding: EdgeInsets.all(20),child: Center(child: Text("Hello, Flutter!")),
)

2️⃣ 列表 & 网格

组件作用示例
ListView滚动列表ListView(children: [...])
GridView网格布局GridView.count(crossAxisCount: 3, children: [...])
SingleChildScrollView单个子元素滚动SingleChildScrollView(child: Column(...))
ListView(children: [ListTile(title: Text("Item 1")),ListTile(title: Text("Item 2")),],
)

3️⃣ 文字 & 按钮

组件作用示例
Text文本Text("Hello", style: TextStyle(fontSize: 18))
RichText富文本RichText(text: TextSpan(text: "Bold", style: TextStyle(fontWeight: FontWeight.bold)))
ElevatedButton立体按钮ElevatedButton(onPressed: () {}, child: Text("点击"))
TextButton文字按钮TextButton(onPressed: () {}, child: Text("文字按钮"))
IconButton图标按钮IconButton(icon: Icon(Icons.star), onPressed: () {})
ElevatedButton(onPressed: () {print("按钮点击");},child: Text("点击我"),
)

4️⃣ 图片 & 图标

组件作用示例
Image.asset加载本地图片Image.asset("assets/logo.png")
Image.network加载网络图片Image.network("https://example.com/logo.png")
Icon图标Icon(Icons.favorite, color: Colors.red)
Image.network("https://picsum.photos/200",width: 100,height: 100,
)

5️⃣ 输入框 & 表单

组件作用示例
TextField单行输入框TextField(decoration: InputDecoration(labelText: "输入内容"))
TextFormField表单输入框TextFormField(decoration: InputDecoration(labelText: "请输入"))
Checkbox复选框Checkbox(value: true, onChanged: (val) {})
Switch开关Switch(value: true, onChanged: (val) {})
Slider滑动条Slider(value: 0.5, onChanged: (val) {})
TextField(decoration: InputDecoration(labelText: "输入用户名",border: OutlineInputBorder(),),
)

6️⃣ 导航 & 路由

组件作用示例
Navigator页面导航Navigator.push(context, MaterialPageRoute(builder: (context) => NewPage()))
BottomNavigationBar底部导航栏BottomNavigationBar(items: [...])
Drawer侧边菜单Drawer(child: ListView(...))
TabBar顶部 Tab 选项卡TabBar(tabs: [...])
BottomNavigationBar(items: [BottomNavigationBarItem(icon: Icon(Icons.home), label: "首页"),BottomNavigationBarItem(icon: Icon(Icons.person), label: "我的"),],
)

7️⃣ 对话框 & 提示

组件作用示例
AlertDialog弹出对话框showDialog(context: context, builder: (context) => AlertDialog(title: Text("提示")))
SnackBar底部提示ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("操作成功")))
showDialog(context: context,builder: (context) {return AlertDialog(title: Text("提示"),content: Text("确认要退出吗?"),actions: [TextButton(onPressed: () => Navigator.pop(context), child: Text("取消")),TextButton(onPressed: () => print("确认"), child: Text("确定")),],);},
);

✅ 总结

  • 布局组件ContainerPaddingCenter
  • 列表组件ListViewGridView
  • 文本 & 按钮TextElevatedButton
  • 图片 & 图标ImageIcon
  • 输入框 & 表单TextFieldCheckbox
  • 导航 & 路由NavigatorBottomNavigationBar
  • 对话框 & 提示AlertDialogSnackBar

如果你需要更详细的示例代码,可以告诉我你的具体需求!🚀


http://www.ppmy.cn/devtools/166972.html

相关文章

MySQL 技术浅析(聚簇索引、UndoLog、RedoLog、MVCC)

MySQL 核心技术深度解析 一、聚簇索引与非聚簇索引 1. 聚簇索引结构 存储方式 InnoDB 中,聚簇索引的叶子节点直接存储完整数据行,数据按主键值物理排序存储。 主键索引即数据文件,非叶子节点存储主键范围和子节点指针数据行与主键索引绑定&…

JavaScript class

1. 抽象类 抽象类定义之后不能被实例化,只能被继承,抽象方法定义之后,必须由继承类实现 abstract class Animal {name: string;constructor(name) {this.name name;}abstract say():void }class Dog extends Animal {constructor(name) {s…

小程序酒店:如何实现智能预订与在线支付?

在移动互联网快速发展的今天,酒店行业面临着前所未有的机遇与挑战。用户需求日益多样化,市场竞争愈发激烈,传统酒店预订方式已经难以满足现代消费者的需求。而小程序作为一种轻量化、便捷化的移动应用形式,正在成为酒店行业数字化转型的重要工具。通过小程序开发,酒店可以…

用DasViewer的时候3Dtiles 转osgb 可以直接指定目标坐标系吗?

没有指定坐标系选项,可以转换后,再进行一次坐标系转换。 DasViewer是一款免费极速实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅的加载较大规模实景三维模型,提供方便快捷的数据浏览操作。 目…

从零开始的python学习(五)P75+P76+P77+P78+P79+P80

本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…

QQuick-Binding的介绍

QQuick-Binding的介绍 Binding的概述 属性绑定:在qml中两个对象的属性和属性之间可以形成依赖,直接属性绑定 如 width: parent.width; 即 对象宽度 与父对象的宽度进行绑定;除了默认的属性绑定,还可以通过Bingding对象建立显示的…

Python:函数(一)

python函数相关的知识点 1. 函数定义与调用 定义:使用 def 关键字,后接函数名和参数列表。 def greet(name):"""打印问候语(文档字符串)"""print(f"Hello, {name}!") 调用&#xff1a…

【设计模式】建造者模式——工厂模式

三、建造者模式——工厂模式 3.1 工厂模式 创建一个类对象的传统方式是使用关键字new, 因为用new 创建的类对象是一个堆对象,可以实现多态。工厂模式通过把创建对象的代码包装起来,实现创建对象的代码与具体 的业务逻辑代码相隔离的目的(将对象的创建和…