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()包裹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械革命 AMD H255 CPU 无法从AMD官网下载显卡驱动的解决办法

很奇怪 我手里俩机械革命 H255 都这毛病&#xff0c;WIN10 WIN11都一样 下载最新的驱动12&#xff0c;1月的都这样 安装了随机驱动&#xff0c;然后从 https://www.amd.com/zh-cn.html 下驱动就报182错误 提示没有可支持的硬件 难道我买的是假AMD&#xff1f; 我又继续实验&…

被裁后半月面试8家公司无果,凭借这份Java面试指南成功入职阿里

前言上个月班上的好好的突然被通知"毕业了"&#xff0c;现在工作也确实不好找。之前近一个月面了很多大大小小的公司降薪太严重都没考虑去&#xff0c;最后没办法本来都打算随便去一家了却偶然得到一个阿里的面试机会&#xff0c;足足面了七面&#xff08;我太难了&a…

猎杀时刻,阿里高工总结spring全栈笔记,疯狂狩猎大厂offer!

前言 我们做这行的对于Spring的学习&#xff0c;可以说是一直未停止。前段时间Spring5.0发布&#xff0c;多了很多新功能&#xff0c;这些新功能改变了我们使用该框架的方式。但是很多铁汁对于Spring 5.0的新增功能并不是很了解&#xff0c;更别说利用这些新功能使用Spring MV…

第一天!

今天开始了第一天,学校期间听了javaweb但实际上根本写不出来,准备直接重听了

关于得物月付额度怎么提现,看完秒懂

在潮流消费成为日常的当下,想要入手心仪的球鞋、潮牌、数码好物,却不想被一次性支付的压力打乱消费计划?得物平台推出的得物月付,以专属信用额度为核心,打造“先享后付”的便捷消费体验,适配年轻人的消费节奏,让…

[Linux]Kubuntu下mpv播放器安装与最佳配置(无mpv4补帧)

下载 sudo add-apt-repository ppa:mpv-team/mpv sudo apt update sudo apt install mpv配置 下载神经网络模型FSRCNNX和用户着色器 mkdir -p ~/.config/mpv/shaders cd ~/.config/mpv/shaders wget https://github.co…

SQL数据类型转换:CAST详解及实践

前言 在 SQL 数据处理中&#xff0c;数据类型转换是常见需求&#xff0c;尤其在跨系统数据交互时。在SQL的世界里&#xff0c;数据类型转换是一个基础且关键的操作&#xff0c;它贯穿于数据库开发、管理与数据分析的各个环节&#xff0c;深刻理解它们对于编写高效、稳定的SQL代…

KingbaseES 解锁时序数据:国产数据库在物联网时代的突围之路

引言 刚接触时序数据领域时&#xff0c;我深感困惑。作为技术人员都明白&#xff0c;数据库选型不当会导致巨大的修正代价。近年来&#xff0c;随着工业互联网和物联网的蓬勃发展&#xff0c;各类传感器和监测设备不断产生海量数据&#xff0c;传统数据库已明显捉襟见肘。破局 …

破局时序数据困局:KingbaseES从医疗到交通的国产化实践启示录

引言 本文将深度剖析KingbaseES在时序数据处理中的技术突破与实战。通过时序引擎架构解析、百万级设备接入的实战细节、索引优化踩坑实录、性能调优的量化方法论的实战应用及国产化替代的深层思考。 一、为什么是KingbaseES&#xff1f; 初次接触金仓时序数据库时&#xff0c…

智能农业决策优化:提示工程架构师的AI技术分享

智能农业决策优化&#xff1a;提示工程架构师的AI技术分享 关键词&#xff1a;智能农业、决策优化、提示工程、AI技术、农业大数据、机器学习模型、农业自动化 摘要&#xff1a;本文深入探讨智能农业决策优化中提示工程架构师所运用的AI技术。首先阐述智能农业的领域背景与发展…

得物月付消费购物额度怎么变现

得物月付额度:解锁潮流消费新方式,先享后付更轻松 在潮流消费成为日常的当下,想要入手心仪的球鞋、潮牌、数码好物,却不想被一次性支付的压力打乱消费计划?得物平台推出的得物月付,以专属信用额度为核心,打造“…

LoRA 微调参数调优流程

目录一、准备阶段:评估任务 & 数据二、训练观察阶段:小规模试验三、超参调优阶段四、迭代优化策略五、生产级经验总结 明白了,你问的是 LoRA 微调在生产落地时的参数调优流程,不仅仅是 rank 和 target modules…

串口屏丨串口屏厂家丨液晶屏厂家丨继电保护仪显示屏选型避坑指南:如何解决强电磁干扰、数据跳变与户外严苛工况适配难题?

继电保护仪作为电力系统安全稳定运行的“哨兵”,是变电站、电力运维、电力设备生产等领域不可或缺的核心检测设备,主要用于模拟电力系统故障、校验继电保护装置的动作特性、定值精度与响应速度,其检测结果直接决定电…

被低估的Excel艺术大师:用REPT函数一键生成条形图与星级评分

谁说Excel图表只能通过插入菜单完成&#xff1f;一段简单的字符重复&#xff0c;就能创造出直观又灵活的数据可视化效果。 在日常数据分析中&#xff0c;我们经常需要快速对比数值大小或直观展示评分等级。传统方法可能是插入正式图表或编写复杂的条件格式&#xff0c;但有一种…

深入理解Linux套接字(Socket)编程:从原理到实践

深入理解Linux套接字Socket编程&#xff1a;从原理到实践1. 套接字基础概念1.1 什么是套接字&#xff1f;1.2 套接字类型对比2. Linux套接字编程核心2.1 套接字创建与配置2.2 关键数据结构2.3 字节序转换3. 高级套接字特性3.1 I/O多路复用3.2 套接字选项4. 实战案例&#xff1a…

如何强制ANY CPU的.net程序按32位或64位模式运行?

强制指定运行位数的方法&#xff0c;&#xff0c;有没有执行某个exe让他按指定模式加载的方式&#xff1f;比如regasm.exe就有32位、64位模式已完成思考你想知道是否能像regasm.exe区分 32/64 位模式那样&#xff0c;在执行 EXE 时直接指定其运行位数&#xff08;而非编译 / 修…

ollama本地安装与大模型与DeepSeek模型调用

Ollama 本地部署 Deepseek R1 模型 概念 Ollama是在Github上的一个开源项目&#xff0c;其项目定位是&#xff1a;一个本地运行大模型的集成框架&#xff1b;目前主要针对主流的LLaMA架构的开源大模型设计&#xff0c;通过将模型权重、配置文件和必要数据封装进由Modelfile定义…

数据驱动决策:大数据在决策预测中的关键作用

数据驱动决策&#xff1a;大数据在决策预测中的关键作用 关键词&#xff1a;数据驱动决策、大数据、决策预测、数据分析、数据价值 摘要&#xff1a;本文旨在深入探讨大数据在决策预测中的关键作用。通过详细介绍大数据的核心概念、相关算法原理、数学模型&#xff0c;结合实际…

洛谷 P3395 路障 题解

题目链接 洛谷 P3395 路障 思路分析 一道迷宫类问题,但不同的是它的障碍物的出现是在一既定时间往后。即对于位于 \(x_i,y_i\) 的障碍物 \(i\),它会在第 \(i\) 秒末尾开始出现,即第 \(i+1\) 秒后的移动都需要考虑它…

实用指南:第七十五篇: 数据可视化(一):Matplotlib基础绘图与样式配置

实用指南:第七十五篇: 数据可视化(一):Matplotlib基础绘图与样式配置2026-01-25 21:48 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: …