| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 使用Widget来构建Flutter应用 -> 正文阅读 |
|
[移动开发]使用Widget来构建Flutter应用 |
目录 简介Flutter是谷歌开发的跨平台UI工具包。通过一套代码库,我们能够构建出能运行在Android,IOS上的APP,本文总结介绍Flutter中的Widget,期待能达到抛砖引玉的作用。 WidgetFlutter提出了一切皆Widget的设计思想,如同汽车领域,使用零部件组装汽车一样,Flutter利用Widget来“组装”应用。 vs??? ? ?上面Widgets组合起来的是一个树形结构: Widget分为两类:StatelessWidget和StatefulWidget,下面用两个案例来理解其区别。 StatelessWidget 案例:自定义Button需求:把系统FloatActionButton替换成自定义的Button,这里采用渐进的演示,逐步用5个子Widget来组合一个带图片、文字且圆角的Button。 1.显示一个文本的按钮
2.接着,用RawMaterialButton包裹文本,让它可以添加点击事件
3.然后,给Button设置圆角样式
4.给Button添加左边的图片
5.调整文本与图片的间距
按照上面的步骤,给button配置完属性后,button的状态是不再改变的,那么这样的Widget可以称为StatelessWidget。 最终效果: ?完整代码:
StatefulWidget 案例:更新UI如何更新Widget需要满足两个条件。首先这个Widget是StatefulWidget类型,其次我们还需编写一个State类,由它来维护widget的生命周期。 需求:在首页,点击NewActivityButton后,需要向ListView的数据中新增一个Item,并刷新UI。 1. 定义首页Widget
2.在State类中,定义私有数据items,随后绑定到listview
3.定义点击事件,在setState()内更新数据,这个数据将驱动框架内部刷新UI.
4.给button绑定这个更新数据的方法
注意:这里setState()执行时,系统框架会检测State类中数据发生改变,然后重新调用build(),重新实例化一个新widget的对象。所以widget是比较轻量的,如果有数据操作需要在State类中进行。 效果图:总结1. Flutter由Widgets组合而成。除了上面提到的Widget,官方还提供了很多基础控件,包括对动画,Canvas的支持。 2. StatefulWidget是用来定义一个可变的控件,内部细节还有很多值得深入学习的地方。 ?Demo代码在:https://github.com/zengqiang24/FlutterWidget 文中若有错误的地方,欢迎指正。谢谢! |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:03:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |