Flutter第八节-----Flutter布局与状态管理实战指南
一.状态更新-setstate●场景计数器点击进行数量1点击-进行数量-1U川视图需要进行相应更新。●语法数据的变化要更新Ul视图需要执行setState方法setState方法会造成ouild的重新执行。●案例实现一个计数器案例import package:flutter/material.dart; void main(ListString args) { runApp(pagewidget()); } class pagewidget extends StatefulWidget { pagewidget({Key? key}) : super(key: key); override _pagewidgetState createState() _pagewidgetState(); } class _pagewidgetState extends Statepagewidget { int count 0; override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: Row( children: [ TextButton( onPressed: () { setState(() { count - 1; print(count); }); }, child: Text(减), ), Text(count.toString()), TextButton( onPressed: () { setState(() { count 1; print(count); }); }, child: Text(加), ), ], ), ), ), ); } }二.Flutter组件-布局组件●Flutter提供了丰富强大的布局组件来构建各种用户界面。下面这个表格汇总了最核心的几类布局组件1.基础容器---container●定义Container是功能丰富的布局组件是一个多功能组合容器●尺寸控制可通过多种方式定义大小有明确优先级规则。●优先级明确宽高constraints约束父组件约束自适应组件大小●装饰系统通过decoration属性实现视觉效果但和color属性互斥●布局控制提供内外边距和对齐方式●可选变化支持绘制时进行矩阵变换如旋转、倾斜、平移等import package:flutter/cupertino.dart; import package:flutter/material.dart; void main(ListString args) { runApp(pagewidget()); } class pagewidget extends StatelessWidget { const pagewidget({Key? key}) : super(key: key); override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Container( transform: Matrix4.rotationZ(0.05), alignment: Alignment.center, margin: EdgeInsets.all(20), width: 200, height: 200, decoration: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(15), border: Border.all(width: 3, color: CupertinoColors.systemYellow), ), child: Text( Hello world!, style: TextStyle(color: Colors.white, fontSize: 20), ), ), ), ); } }三.Flutter组件---居中组件●Center:将其子组件在父容器的空间内进行水平和垂直方向上的居中排列import package:flutter/cupertino.dart; import package:flutter/material.dart; void main(ListString args) { runApp(pagewidget()); } class pagewidget extends StatelessWidget { const pagewidget({Key? key}) : super(key: key); override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text(center代码示例), centerTitle: true), body: Center( child: Container( width: 100, height: 100, decoration: BoxDecoration(color: Colors.blue), child: Center( child: Text(居中内容, style: TextStyle(color: Colors.white)), ), ), ), ), ); } }●应用场景页面内容整体居中如将一个登录表单或一个加载中的提示图标在页面正中显示●注意事项Center:不能设置宽高Centert的最终大小取决于其父组件传递给它的约束Center会向它的父组件申请尽可能大的空间●实现固定宽高且居中的组件Center去包裹一个具有固定宽高的子组件。Container/SizeBox

相关新闻

AM62L MCASP与ADC寄存器配置:FIFO、DMA与中断实战解析

AM62L MCASP与ADC寄存器配置:FIFO、DMA与中断实战解析

1. 项目概述:深入AM62L外设寄存器,构建高效数据流控制 在嵌入式系统开发,尤其是涉及实时音频处理或高速数据采集的应用中,德州仪器的Sitara系列处理器因其强大的集成外设和灵活的配置能力而备受青睐。最近在为一个工业音频网关项目…

2026/7/27 0:05:18 阅读更多 →
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时

AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时

系列第17篇 | 一个bug不可怕,三个同时来才致命 凌晨4点的飞书 2026年7月17日,凌晨4点。 我睡不着,打开飞书看了一眼小密(我的AI统筹Agent)的消息。然后我愣住了: 【小密统筹报告 07-17 04:04】 【小密统…

2026/7/27 0:05:18 阅读更多 →
Unity程序化网格生成:从零构建圆柱体Mesh的完整指南

Unity程序化网格生成:从零构建圆柱体Mesh的完整指南

1. 项目概述:为什么我们要亲手绘制网格? 在Unity开发中,Mesh(网格)是构成一切3D可视物体的基石。无论是屏幕上旋转的立方体,还是角色身上随风飘动的披风,其视觉形态最终都由Mesh定义。我们通常从…

2026/7/26 14:44:48 阅读更多 →

最新新闻

【CarbonData】什么是 Segment?它在 CarbonData 的数据管理和生命周期中起什么作用?

【CarbonData】什么是 Segment?它在 CarbonData 的数据管理和生命周期中起什么作用?

CarbonData Segment 机制全解析:数据版本管理与生命周期的核心 问题引入 用户问题原文:什么是 Segment?它在 CarbonData 的数据管理和生命周期中起什么作用? 在电商用户画像构建平台中,我们曾遭遇一次严重的数据不一致事故:一条用于计算用户当日活跃度的查询 SELECT use…

2026/7/28 1:24:10 阅读更多 →
MLOps 数据漂移检测:模型性能退化的自动预警

MLOps 数据漂移检测:模型性能退化的自动预警

MLOps 数据漂移检测:模型性能退化的自动预警 一、模型上线的隐性退化 模型上线那天,指标漂亮,皆大欢喜。一个月后,准确率悄悄往下掉。没有报错,没有异常,只是预测越来越偏。这不是 bug,是数据漂…

2026/7/28 1:24:10 阅读更多 →
如何快速解密QMC音乐:完整技术指南与音频格式转换解决方案

如何快速解密QMC音乐:完整技术指南与音频格式转换解决方案

如何快速解密QMC音乐:完整技术指南与音频格式转换解决方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的加密音频无法在其他播放器上播放而…

2026/7/28 1:24:10 阅读更多 →
Kite框架实现动态表名的两种方案与实战经验

Kite框架实现动态表名的两种方案与实战经验

1. 动态表名需求背景解析在数据库应用开发中,动态表名是一个经典但容易被忽视的需求场景。我最早接触这个需求是在2018年开发一个多租户SaaS系统时,当时需要在同一个数据库实例中为每个租户动态分配独立的数据表。这种设计既能保证数据隔离,又…

2026/7/28 1:24:10 阅读更多 →
C++函数适配器:从std::bind2nd到std::bind的演进与实战

C++函数适配器:从std::bind2nd到std::bind的演进与实战

1. 项目概述:从“硬编码”到“灵活适配”的思维跃迁在C STL算法的世界里,我们常常会遇到一个看似简单却令人头疼的场景:手头有一个现成的算法,比如std::count_if,它需要一个一元谓词(一个参数)来…

2026/7/28 1:24:10 阅读更多 →
AWK多行文本解析实战:从日志处理到性能优化

AWK多行文本解析实战:从日志处理到性能优化

1. 多行文本解析的常见场景与核心挑战处理多行文本数据是日常开发中的高频需求。从日志分析到配置文件处理,再到数据清洗,我们经常需要从结构复杂或半结构化的文本中提取特定信息。以Nginx访问日志为例,单条记录可能跨越多行,包含…

2026/7/28 1:23:10 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻