第四章:不破不立,永不放弃

本文深入探讨Flutter中视图的基石—widget,及其两大派系StatelessWidget和StatefulWidget的作用与实现方式。通过实例说明如何利用widget的灵活性构建复杂界面,并解析Flutter状态管理的独特机制。
部署运行你感兴趣的模型镜像

做好了前期的准备,从这篇开始就跟着我一步一步地挖掘Flutter中的坑吧。 

视图的祖宗——widget

在安卓中提到View,你知道所有视图组件的祖宗都是View,但是这祖宗不亲民啊。可在Flutter中就不一样了,widget到处都是,可以说widget支撑起了Flutter的全部脸面。我们在开发界面中会对“树”的概念更加深刻,child和children比比皆是。你会发现widget嵌套是最正常不过了。我说这些的意思是想让大家思想发散一下,习惯一下widget。当你在Flutter开发中看到某个控件的属性需要一个widget类型的值,那么你就可以放心大胆的放你想要放的视图组件吧。

举个栗子:比如AppBar这个控件。就是我们平常见到的页面顶部标题栏。它有个title属性,平常我们在安卓中肯定认为这个属性也就是让写个String类型的标题,但在Flutter中你会发现title是Widget类型的,这个时候你就可以联想了,我是不是放任何组件都可以呢?如果我想让它显示文字我们就放个Text控件,如果我们让他显示图片我们就放个Image控件,甚至我们可以放个TabBar控件让它显示个选项卡。看到这里是不是感觉widget是不是很亲民,安卓中复杂的页面可能在Flutter中一个嵌套搞定了^_^。效果参考下图:

AppBar源码
AppBar嵌套Text的效果​​​​​
AppBar嵌套TabBar的效果

StatelessWidget和StatefulWidget两大门派

了解了Widget这个控件的伟大之处,那么下面我们就了解一下Widget的两大门派StatelessWidget和StatefulWidget。

为什么要有这两大门派呢?由这个问题就引出了另一个棘手的问题,Flutter有没有像Android项目中的R文件呢?没有R文件怎么指定刷新界面呢?我怎么找到Button添加点击事件呢?我们在android开发中通过给控件指定Id,就可以通过Id得到控件从而添加事件和刷新数据。我们在HTML网页开发中我们也可以通过控件的id属性完成事件添加和刷新数据。Flutter中咋办呢?

这就是Flutter的特别之处。Flutter没有Id这个东西,他直接给你分了两类,如果你想一个控件从这个页面创建到消失一成不变呢,你就继承StatelessWidget。如果你想在使用过程中改变它的内容呢(小到改变颜色,大到网络请求刷新数据),你就继承StatefulWidget。如果还不明白请读如何更新widget(温馨提示:点击链接阅读,温故而知新),是不是有点意思。

知道了SatelessWidget和StatefulWidget的由来,咱们就着重介绍一下这两个朋友。

StatelessWidget这个朋友呢我们就用一句话概括他:谁想一辈子就躺那儿跟我走。

StatefulWidget这个朋友我们就不能用一句话概括了,他干的活比较多。对于这个哥们我们用的最多的是他下面这两个方法:

//调用这个方法,可以使本控件内的页面重新build
setState(() {
   //TODO 将你想要改变的数据进行改变
});

//重写这个方法可以预先加载你的数据比如:提前加载网络数据等等。系统调用顺序是先调用initState然后调用build
@override
void initState() {
  super.initState();
  //TODO 初始化你的变量或你要预先加载的东西
}

到此两个朋友介绍完了,只讲重点。

路遥遥兮,坑不断。。。期待下篇吧^_^。

 

悄悄话:

安卓开发者的福利:小绿人  一个实用的安卓开发工具箱,搜集了数千个开源项目。拿走不谢^_^。

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

## 软件功能详细介绍 1. **文本片段管理**:可以添加、编辑、删除常用文本片段,方便快速调用 2. **分组管理**:支持创建多个分组,不同类型的文本片段可以分类存储 3. **热键绑定**:为每个文本片段绑定自定义热键,实现一键粘贴 4. **窗口置顶**:支持窗口置顶功能,方便在其他应用程序上直接使用 5. **自动隐藏**:可以设置自动隐藏,减少桌面占用空间 6. **数据持久化**:所有配置和文本片段会自动保存,下次启动时自动加载 ## 软件使用技巧说明 1. **快速添加文本**:在文本输入框中输入内容后,点击"添加内容"按钮即可快速添加 2. **批量管理**:可以同时编辑多个文本片段,提高管理效率 3. **热键冲突处理**:如果设置的热键与系统或其他软件冲突,会自动提示 4. **分组切换**:使用分组按钮可以快速切换不同类别的文本片段 5. **文本格式化**:支持在文本片段中使用换行符和制表符等格式 ## 软件操作方法指南 1. **启动软件**:双击"大飞哥软件自习室——快捷粘贴工具.exe"文件即可启动 2. **添加文本片段**: - 在主界面的文本输入框中输入要保存的内容 - 点击"添加内容"按钮 - 在弹出的对话框中设置热键和分组 - 点击"确定"保存 3. **使用热键粘贴**: - 确保软件处于运行状态 - 在需要粘贴的位置按下设置的热键 - 文本片段会自动粘贴到当前位置 4. **编辑文本片段**: - 选中要编辑的文本片段 - 点击"编辑"按钮 - 修改内容或热键设置 - 点击"确定"保存修改 5. **删除文本片段**: - 选中要删除的文本片段 - 点击"删除"按钮 - 在确认对话框中点击"确定"即可删除
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值