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

Flutter Widget组件学习(专为 Uniapp 转 Flutter 定制)

一、页面结构 / 根容器(最常用)

Flutter WidgetUniapp 对应组件说明
Scaffoldpage 根节点Flutter 页面标配,自带导航栏、状态栏、背景、抽屉
AppBarnavigation-bar页面顶部导航栏(标题、返回、按钮)
SafeArea自动安全区适配

避开刘海、底部小黑条,必须套在页面外层

二、布局组件(最核心!)

Flutter WidgetUniapp 对应核心用途
Container<view>+ 样式万能容器,支持宽高、边距、背景、圆角、阴影
Column<view style="flex-direction:column">垂直布局(从上到下)
Row<view style="flex-direction:row">水平布局(从左到右)
Stack<view style="position:relative">子元素 absolute层叠布局(悬浮、遮罩、徽章)
Positionedposition:absolute配合 Stack 定位子元素
Expandedflex:1填充剩余空间(必须放在 Row/Column 里)
SizedBox<view style="width:xx;height:xx"></view>固定宽高、间距占位
Paddingpadding专门做内边距(比 Container 更轻量)
Alignalign/ 居中控制子元素对齐方式
Center居中快速让子元素居中

三、文本 / 图标

Flutter WidgetUniapp 对应说明
Text<text>显示文本(必用)
RichText富文本一段文字多种样式
Icon<icon>系统图标
IconButton<button icon>图标按钮

四、按钮 / 交互

Flutter WidgetUniapp 对应说明
ElevatedButton<button type="primary">凸起按钮(常用)
TextButton<text>点击文字按钮(无背景)
OutlinedButton镂空按钮边框按钮
GestureDetector@click/@tap任何组件添加点击、长按、双击(万能点击)
InkWell带水波纹点击带 Material 点击效果(比 GestureDetector 好看)

五、输入框 / 表单

Flutter WidgetUniapp 对应说明
TextField<input>输入框(文本、密码、数字)
Checkbox<checkbox>复选框
Radio<radio>单选框
Switch<switch>开关
Slider<slider>滑块
Form+TextFormField表单校验表单统一校验(登录、注册必用)

六、列表(最常用!)

Flutter WidgetUniapp 对应说明
ListView<scroll-view>+<view v-for>垂直 / 水平长列表(自带滚动、复用)
ListView.builder高性能长列表按需渲染,海量数据不卡顿
GridView<grid>网格布局
SingleChildScrollView<scroll-view>可滚动容器(适合少量内容)

七、图片 / 资源

Flutter WidgetUniapp 对应说明
Image<image>本地 / 网络图片
CircleAvatar圆形头像快速实现圆形头像
FadeInImage图片占位 + 淡入优化网络图片体验

八、弹窗 / 提示

Flutter WidgetUniapp 对应说明
AlertDialoguni.showModal确认弹窗
BottomSheetuni.showActionSheet底部弹出菜单
SnackBaruni.showToast底部轻提示
Drawer侧滑抽屉侧边栏菜单

九、导航 / 路由

Flutter 类 / WidgetUniapp 对应说明
Navigatoruni.navigateTo页面跳转、返回
MaterialPageRoute路由页面页面跳转动画
TabBar+TabBarView<tab-bar>底部 / 顶部 tab 切换

十、样式增强(高频小部件)

Flutter WidgetUniapp 对应用途
DecoratedBox背景 / 边框加背景、边框、渐变(比 Container 轻)
Opacityopacity透明度
ClipRRectborder-radius圆角裁剪
ClipOval圆形裁剪圆形图片 / 按钮
Card卡片容器带阴影、圆角的卡片

快速记忆口诀(专为 Uniapp 转 Flutter 定制)

  1. 页面 = Scaffold(替代 Uniapp 页面根节点)
  2. 容器 = Container(替代 view)
  3. 排版 = Row + Column(flex 布局)
  4. 占空间 = Expanded(flex:1)
  5. 点击 = InkWell / GestureDetector(@click)
  6. 列表 = ListView(scroll-view)
  7. 输入 = TextField(input)
  8. 文字 = Text(text)
  9. 图片 = Image(image)
  10. 层叠 = Stack(relative + absolute)

最精简 “必背 15 个”(你 90% 时间只用这些)

  1. Scaffold
  2. Container
  3. Row
  4. Column
  5. Expanded
  6. Stack
  7. Text
  8. TextField
  9. Image
  10. ListView
  11. ElevatedButton
  12. InkWell/GestureDetector
  13. Padding
  14. SizedBox
  15. SafeArea

Flutter 常用组件属性速查表

组件名称精细属性 + 具体取值
ScaffoldappBar: AppBar (title: Text ("标题"))body: 页面内容floatingActionButton: 悬浮按钮bottomNavigationBar: 底部导航drawer: 左侧抽屉backgroundColor: Colors.whiteresizeToAvoidBottomInset: true / false
Containerwidth: 200height: 200alignment: Alignment.center / topLeft / bottomRightpadding: EdgeInsets.all(10) / symmetric(horizontal:10,vertical:5) / only(left:10)margin: EdgeInsets.all(10) / symmetric(horizontal:10,vertical:5) / only(top:5)color: Colors.bluedecoration: BoxDecoration (颜色、圆角、边框、阴影)child: 子组件
RowmainAxisAlignment: start / center / end / spaceBetween / spaceAround / spaceEvenlycrossAxisAlignment: start / center / end / stretchmainAxisSize: max / minchildren: 子组件列表
ColumnmainAxisAlignment: start / center / end / spaceBetween / spaceAround / spaceEvenlycrossAxisAlignment: start / center / end / stretchmainAxisSize: max / minchildren: 子组件列表
Expandedflex: 1 / 2 / 3child: 子组件必须放在 Row/Column 内
Stackalignment: center / topLeft / topRight / bottomCenterfit: StackFit.loose / expandclipBehavior: Clip.none / hardEdgechildren: 层叠子组件
Textdata: "显示文字"style: TextStyle(fontSize: 16,color: Colors.black,fontWeight: normal / bold,fontStyle: normal / italic,letterSpacing: 1,height: 1.5,decoration: none / underline / lineThrough)textAlign: left / center / rightmaxLines: 1overflow: ellipsissoftWrap: true
TextFieldcontroller: TextEditingController()decoration: InputDecoration (hintText:"提示",labelText:"标签",border:OutlineInputBorder ())keyboardType: text / number / emailobscureText: true (密码) /falsemaxLength: 20enabled: true / falseonChanged: (value){}
Imageimage: NetworkImage(url) / AssetImage(path)width: 100height: 100fit: cover / contain / fill / scaleDownalignment: centercolor: 混合色
ListViewscrollDirection: vertical / horizontalpadding: EdgeInsets.all(10)shrinkWrap: true / falsephysics: AlwaysScrollable / NeverScrollableitemCount: 数量itemBuilder: 构建列表
ElevatedButtononPressed: (){}onLongPress: (){}child: Text ("按钮")style: 背景色、文字色、圆角、padding
InkWellonTap: 点击onDoubleTap: 双击onLongPress: 长按splashColor: 水波纹颜色child: 子组件
GestureDetectoronTap: 点击onDoubleTap: 双击onLongPress: 长按onPanUpdate: 拖拽child: 子组件
Paddingpadding: EdgeInsets.all(10)padding: EdgeInsets.symmetric(horizontal:10, vertical:5)padding: EdgeInsets.only(left:10, top:5)child: 子组件
SizedBoxwidth: 100height: 50SizedBox (width:20) 水平间距SizedBox (height:10) 垂直间距child: 子组件
SafeAreatop: true / falsebottom: true / falseleft: true / falseright: true / falsechild: 子组件
GridViewGridView.count () 固定列数crossAxisCount: 2 (列数)mainAxisSpacing: 10 (行间距)crossAxisSpacing: 10 (列间距)padding: EdgeInsets.all(10)childAspectRatio: 1 (宽高比)shrinkWrap: true / falsephysics: AlwaysScrollable / NeverScrollablechildren: 子组件列表GridView.builder () 动态构建(高效)crossAxisCount: 2 /gridDelegate 配置itemCount: 总数itemBuilder: 构建条目padding: EdgeInsets.all(10)mainAxisSpacing: 10crossAxisSpacing: 10
http://www.jsqmd.com/news/897464/

相关文章:

  • 体验Taotoken旗舰模型首发更新第一时间用上最新最强模型
  • 多云管理工具:统一管理多个云平台资源
  • 2026年河北玻璃钢环保设备采购指南:电缆桥架、化粪池、一体化泵站品牌深度横评 - 精选优质企业推荐官
  • 基于诊断引导与置信感知的故障鲁棒声源定位系统
  • 【节点】[Rejection节点]原理解析与实际应用
  • 利用充电纹波在线监测电池内阻:嵌入式BMS健康诊断新方法
  • 私有化大模型成本骤降40%!2024最新Llama 3+RAG+量化推理架构实测:中小企业部署ChatGPT级能力的3步极简路径
  • 如何理解VM虚拟化的工业化工程化
  • 干货合集:2026年刚需首选的专业AI论文写作软件
  • NestJS 的优秀替代框架——系统化选型指南(2026视角)
  • 2026年最新怀柔黄金回收白银回收铂金回收靠谱店铺权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 莘州文化
  • 6款好用降AI率软件 合规程度拉满 - 降AI小能手
  • 标准语言并行化:用do concurrent实现海洋模型CPU/GPU统一加速
  • 不止是航点:拆解QGC中那些特殊的任务项编辑器(Survey、固定翼降落等)
  • 2026共享云桌面品牌测评:设计云桌面推荐排名,制造业3D设计首选方案解析 - 速递信息
  • 认知无线电网络协同感知:对抗误差与攻击的稳健估计方案
  • 2026年不动产资产管理系统精选,集团私有化部署平台对比 - 品牌2025
  • 2026年常州品牌首饰回收推荐:添价收品牌首饰回收精准估价高价变现 - 薛定谔的梨花猫
  • 2026年最新门头沟黄金回收白银回收铂金回收靠谱店铺权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 莘州文化
  • 实验4:自动化代码审查 -
  • AI模型生产环境运维:从评估、监控到应对退化的全链路实践
  • 如何快速选择EmulatorJS版本:终极决策指南
  • 物联网五大核心应用领域深度解析:从技术架构到商业模式
  • 2026天津黄金回收门店推荐,闲置金饰变现,流程简单高效 - 奢侈品回收测评
  • HADOOP的配置
  • 2026年消解检测一体便携箱式水质检测仪十大品牌有哪些?现场执法与实验室级精度如何兼得?正规厂家与品牌推荐 - 品牌推荐大师1
  • 别光看RK3588了!聊聊RK3576这颗‘小钢炮’:ARM PC和边缘盒子选它够用吗?
  • 露营美食指南:杨先生双非遗糕点,低糖不腻的户外能量补给 - 玖叁鹿
  • 2026年最新密云黄金回收白银回收铂金回收靠谱店铺权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 莘州文化
  • 2026年最新黄岩区黄金回收白银回收铂金回收靠谱店铺权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 莘州文化