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

Flutter第六节-----Flutter部分基础组件解析到自定义组件

一. 启动文件说明-runApp和Widget

runApp函数是Flutter内部提供的一个函数,启动一个Flutter应用就是从调用这个函数开始的
Widget表示控件、组件、部件的含义,Flutter中万物皆Widget

二.Flutter的默认Material库

●Material是Google公司推行的一套设计风格,有很多的设计规范,如颜色、文字排版、动画等。
●目的:Material为Android、Web、iOS、HarmonyOS多个平台提供统一的交互和视觉体验。

三.基础组件-MaterialApp

特性:整个应用被MaterialApp包裹,方便我们对整个应用的属性进行整体设计

void main(List<String> args) { runApp( MaterialApp( title: "Flutter组件初体验", theme: ThemeData(scaffoldBackgroundColor: Colors.blue), home: Scaffold(), ), ); }


常见属性:title/theme/home
ttle:用来展示窗口的标题内容(可以不设置)
theme:用来设置整个应用的主题
home:用来展示窗口的主体内容

四.基础组件-Scaffold组件

●Scaffold:用于构建Material Design风格页面的核心布局组件,提供标准、灵话配置的页面骨架

void main(List<String> args) { runApp( MaterialApp( title: "Flutter组件初体验", //theme: ThemeData(scaffoldBackgroundColor: Colors.blue), home: Scaffold( appBar: AppBar( //appbar用于给Scaffold声明顶部导航栏,Appbar用来构造顶部导航栏的具体样式内容 title: Text("头部区域"), //title:设置标题 centerTitle: true //居中标题 ), body: Container( //给body放置一个容器 child: Center( //给这个容器放置一个布局容器center child: Text("中部区域") //给这个center容器里再放一个child组件 ) ), bottomNavigationBar: Container( //声明底部导航栏,方便切换页面 height: 80, child: Center(child: Text('底部区域')), ), ), ), ); }

注意:一个容器里面可以放一个child,不能放两个,但可以在child里面再放容器,容器中再放child。

五.Flutter自定义组件-无状态组件和有状态组件

1.无状态组件-statelessWidget

●定义:根据自己特定的需求创建自己的Widget

●分类:Flutter分为无状态组件和有状态组件

示例无状态组件:

首先创建类利用构造函数runApp初始化我们的MainPage类,继承statelessWidge把官方StatelessWidget里面已经写好的底层代码全部拿过来复用。继承之后,MainPage自动获得 Widget 必备的能力,然后重写build,StatelessWidget父类里规定:所有子类必须实现build方法,框架渲染页面时,会自动调用这个方法,获取你要绘制的组件。最后在MainPage类中return了一个MaterialApp。

void main(List<String> args) { runApp(MainPage()); } class MainPage extends StatelessWidget { @override Widget build(BuildContext context) { // TODO: implement build return MaterialApp( title: "Flutter组件的初体验", home: Scaffold( appBar: AppBar(title: Text("头部区域"), centerTitle: true), body: Container(child: Center(child: Text("中部区域"))), bottomNavigationBar: Container( height: 80, child: Center(child: Text("底部区域")), ), ), ); } }

2.有状态组件-statefulWidget

●定义:有状态组件是构建动态交互界面的核心,能够管理变化的内部状态,当状态改变时,组件会更新显示内容

●实现1:创建两个类,第一个类继承Statefulwidget类,主要接收和定义最终参数,核心作用是创建State对象

●实现2:第二个类继承State<第一个类名>,负责管理所有可变的数据和业务逻辑,并实现ouild构建方法

●要点:build方法需要返回一个Widget
●需求:将之前骨架组件换成有状态组件

示例:

void main(List<String> args) { runApp(MainPage()); } class MainPage extends StatefulWidget { @override State<StatefulWidget> createState() { // TODO: implement createState return _MainPageState(); } } class _MainPageState extends State<MainPage> { @override Widget build(BuildContext context) { // TODO: implement build return MaterialApp( title: "Flutter组件的初体验", home: Scaffold( appBar: AppBar(title: Text("头部区域"), centerTitle: true), body: Container(child: Center(child: Text("中部区域"))), bottomNavigationBar: Container( height: 80, child: Center(child: Text("底部区域")), ), ), ); } }

http://www.cnnetsun.cn/news/3492206.html

相关文章:

  • 360AI搜索响应延迟超2.3s?性能压测报告首曝:3种Query优化策略实测QPS提升417%
  • 深入解析TI MibSPI控制寄存器:ECC诊断与中断配置实战指南
  • 怎样快速搞定Windows苹果驱动:3步精简安装终极指南
  • coding-ethos 实战:把 AI 编码规则变成可回读的 policy 与 remediation
  • 成年人的顶级能力:允许自己搞砸
  • Python TDD实战:红绿重构循环驱动高质量代码开发
  • CyberChef:网络安全分析师的终极数据处理神器
  • C++轻量级状态机TinyFSM:从原理到实战,告别if-else混乱
  • 70V高耐压USB过压保护芯片PW1600——欧盟Type-C 42V认证首选方案
  • 2026 AI副业爆发倒计时:3类零代码技能+2个合规变现闭环,90%程序员尚未察觉
  • C++异步线程池:从原理到工业级实现
  • 从零实现C++ STL set:深入理解红黑树与迭代器封装
  • Linux C读写锁原理与实战:从pthread_rwlock_t到高并发缓存优化
  • C++与OpenCV实现车牌定位:边缘与颜色融合的实战指南
  • C++实现数值求根:从平分法原理到工程实践详解
  • VC++ 2010 Express实战指南:从环境搭建到MFC图形界面开发
  • C++实现LZW压缩算法:从原理到工程实践详解
  • C++并发编程实战:锁机制详解与性能优化指南
  • 基于MediaPipe手势识别实现体感切水果游戏:Python+OpenCV实战
  • 185、注意力机制进化:SAN的二阶通道注意力与RCAN的残差通道注意力对比
  • Meta-Harness: End-to-End Optimization of Model Harnesses——模型工具链的端到端优化
  • OpenClaw 对接 DeepSeek 大模型完整配置实操步骤
  • DMS:用动态麦克劳林级数破解VLA端侧实时性-稳定性-精准性三角
  • Cursor + TDD双引擎启动:从需求描述到可运行测试用例,8分钟极速闭环(含真实电商订单案例)
  • VLA+RL:具身智能从端到端视觉语言动作建模到真实机器人落地
  • LingBot-VLA实战解析:Flow Matching与Query深度蒸馏如何实现真机落地
  • 硬科技公司组织失衡:当3人决策 vs 172人执行
  • CoopTrack:端到端协同跟踪与实例级语义签名(ISS)解析
  • YOLOv11 配对的无人机红外-可见光多模态火点、烟雾分类数据集多模态火情检测、红外可见光配对数据、无人机火点烟雾识别、双光谱火灾检测多模态火灾检测 红外可见光融合 无人机火情监测 火点烟雾识别
  • 市面上封装齐全的大阵列芯片测试座厂家接触稳定性远超同行业标准