news 2026/4/23 17:11:46

Flutter for OpenHarmony核心组件学习: MaterialApp、Scaffold 两大基础组件以及有无状态组件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flutter for OpenHarmony核心组件学习: MaterialApp、Scaffold 两大基础组件以及有无状态组件

Flutter for OpenHarmony核心组件学习: MaterialApp、Scaffold 两大基础组件以及有无状态组件


作者:爱吃大芒果

个人主页 爱吃大芒果

本文所属专栏Flutter

更多专栏
Ascend C 算子开发教程(进阶)
鸿蒙集成
OpenAgents
openJiuwen
从0到1自学C++


前言

本次学习主要掌握 Flutter 中MaterialAppScaffold两大基础组件的用法,以及无状态组件(StatelessWidget)和有状态组件(StatefulWidget)的定义与区别。


核心知识点梳理

1. 根组件MaterialApp

  • 作用:作为 Flutter 应用的入口,是 Material Design 风格应用的全局配置中心。
  • 核心配置项
    • title:应用标题,会显示在任务管理器或应用切换列表中。
    • theme:全局主题配置,可统一设置scaffoldBackgroundColor等样式。
    • home:应用启动后显示的第一个页面,通常是Scaffold组件。
  • 踩坑记录
    最初错误地用Color(const Color.fromARGB(...))设置主题色,导致类型不匹配。
    正确做法是直接使用Color.fromARGB(255, 173, 186, 189)Colors.blue

2. 页面骨架Scaffold

  • 作用:封装了常见的页面结构元素,快速搭建符合 Material Design 规范的页面。
  • 常用属性
    • appBar:顶部导航栏,可设置标题、图标和操作按钮。
    • body:页面主体内容区域,承载主要业务组件。
    • bottomNavigationBar:底部导航栏,适合实现多页面切换。
  • 实践效果
    通过Scaffold快速搭建了包含顶部标题栏、居中内容和底部导航的完整页面,开发效率显著提升。

3. 无状态组件StatelessWidget

  • 特点:组件内容固定,初始化后数据不可变,仅依赖传入的final类型参数构建。
  • 适用场景:静态展示类组件,如标题、文本标签。
  • 核心方法:仅需实现build方法,返回要渲染的 Widget 树。
  • 示例代码
    classmainpageextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(home:Scaffold(appBar:AppBar(title:Text('爱吃大芒果')),body:Center(child:Text('爱吃大西瓜')),),);}}

4. 有状态组件StatefulWidget

  • 特点:包含可变状态(State),状态变化时会触发组件重新构建,实现动态交互。
  • 适用场景:需要动态更新的组件,如计数器、表单输入。
  • 核心结构
    分为StatefulWidget类和对应的State类,前者负责创建State,后者管理状态和构建 UI。
  • 示例代码
    classmainpageextendsStatefulWidget{@overrideState<mainpage>createState()=>_mainpagestate();}class_mainpagestateextendsState<mainpage>{@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(home:Scaffold(appBar:AppBar(title:Text('爱吃大芒果')),body:Center(child:Text('爱吃大西瓜')),),);}}


总结

  1. 组件关系MaterialApp是应用的根,Scaffold是页面的骨架,二者结合构成了 Flutter 应用的基础结构。
  2. 组件选型:静态内容用StatelessWidget,动态交互用StatefulWidget,可有效提升性能和代码可维护性。
  3. 避坑提示:使用Color时,直接调用Color.fromARGB()Colors.xxx即可,无需额外用Color()包裹。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:49:10

使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 43--添加allure测试报告显示信息和其他封装方法

测试学习记录&#xff0c;仅供参考&#xff01; 添加allure测试报告显示信息 增加测试报告首页环境信息和修改 allure 测试报告显示图标&#xff1b; 一、增加测试报告首页环境信息 1、在项目根目录下创建一个名称为 environment.xml 的配置文件&#xff0c;输入相关的环境配置…

作者头像 李华
网站建设 2026/4/21 22:21:56

亲测好用自考必看TOP8AI论文软件测评

亲测好用自考必看TOP8AI论文软件测评 2026年自考论文写作工具测评&#xff1a;为何值得一看 随着人工智能技术的不断进步&#xff0c;越来越多的自考生开始借助AI论文软件提升写作效率。然而&#xff0c;面对市场上五花八门的产品&#xff0c;如何选择真正适合自己的工具成为一…

作者头像 李华
网站建设 2026/4/23 15:52:05

SpringBoot中多配置文件和外部配置文件加载顺序

一、项目基础信息1. 项目结构基于 Maven 构建的 Spring Boot 项目&#xff0c;核心依赖包含 web、validation、devtools 等&#xff1a;JDK 版本&#xff1a;17Spring Boot 版本&#xff1a;3.2.02. 核心 POM 配置xml<project xmlns"http://maven.apache.org/POM/4.0.0…

作者头像 李华
网站建设 2026/4/23 11:26:07

大数据领域数据中台的安全审计与合规

大数据领域数据中台的安全审计与合规 关键词:大数据、数据中台、安全审计、合规、数据安全 摘要:本文聚焦于大数据领域数据中台的安全审计与合规问题。随着大数据技术的迅猛发展,数据中台成为企业整合和管理数据的重要平台。然而,其安全与合规性面临诸多挑战。文章首先介绍…

作者头像 李华
网站建设 2026/4/23 14:30:31

多头注意力中的张量重塑

view PyTorch 的view() 是张量「重塑&#xff08;Reshape&#xff09;」函数&#xff0c;用于改变张量的维度形状但不改变数据本身 在多头注意力中&#xff0c;view()的核心作用是将总隐藏维度拆分为「注意力头数 单头维度」&#xff0c;实现多头并行计算 核心规则 tensor.vie…

作者头像 李华
网站建设 2026/4/23 12:53:39

告别if-else噩梦:流程编排技术

作为一个优秀的程序员&#xff0c;要守住职业的底线。能简单快速的完成的一件事&#xff0c;就一定要用简单的方案快速完成。不可过度的设计&#xff0c;始终保持系统的简洁&#xff01; 曾几何时&#xff0c;我对于流程编排这件事 嗤之以鼻&#xff0c;为什么呢&#xff1f;我…

作者头像 李华