IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> flutter (一)View -> 正文阅读

[移动开发]flutter (一)View

下面内容的作用是大概认识一下Android和Flutter视图上的构建差异,有一个整体的认识。

一、Flutter视图

Android里面的(视图)View:View是屏幕上显示所有内容的基础,按钮,工具栏,输入框等都是View
Flutter视图:Widget 但是Widget不具有生命周期,他们是不可变的,他们会存在于状态被改变之前,每当Widget或者发生变化时,Flutter就会创建一个新的Widget实列树。Android/IOS视图被绘制一次,调用invalidate/setNeedsDisplay之前不会重置。
Widget:很轻巧,它本身并不是视图,并且不是直接绘制任何东西,而是对UI及其语言的描述。Flutter包含了Material组件库,这些widgets遵循了Material设计规范。

二、更新Widgets

在安卓和ios更新视图,我们可以直接通过对应的方法来操作更新。在Flutter中Widget是不可变的,不会直接更新。我们可以直接通过操做Widget的状态来更新他们。
这就是有状态和无状态概念的来源。
StatelessWidget:无状态信息的Widget,使用于当我们描述的用户界面不依赖于对象中的配置信息时
比如:在安卓中使用imageView来显示loge,loge在运行时不会改变,因此在Flutter中使用StatelessWidget最好。

StatefulWidget:有状态信息的Widget,如果要根据HTTP网络请求或用户交互收到的数据动态更改Ui,则必须使用StatefulWidget并告诉Flutter框架Widget状态的更新,以便更新Widget.

有无状态之间最重要的区别在于StatefulWidget具有一个State对象,该对象存储状态数据并将其传递到树重建中,因此状态不会丢失。

三、布局

Android:我们使用XML编写布局
Flutter:编写一个Widget树声明布局

四、在布局中删除或者添加组件

Android:可以调用父级空间的addChild或者removeChild的方法以动态添加或者删除View。
Flutter中:因为Widget是不可变的,所以没有类似的方法。我们可以通过函数或者表达式,该函数表或者表达式返回一个Widget给父项布局,并通过布尔值控制该Widget的创建。

五、动画

Android动画:可以通过XML创建动画或者调用view.animate()。
Flutter中:使用动画库来包裹widgets,而不是创建一个widget.

六、绘图(Canvas draw/paint)

Android中:可以使用Canvas与Drawable在屏幕上绘制除自定义形状和图片;
Flutter:也有类似的API,因为它基于相同的底层渲染引擎Skia。Flutter有两个类可以帮助我们绘制画布,CustomPaint和CustomPainter,他们实现算法以绘制到画布。可以用来自定义签名之类的。

七、构建自定义Widgets

Android中:可以通过继承View或者已经存在的某个控件,然后覆盖其绘制方法来实现自定义View。
Flutter中:推荐组合多个小的Widget来进行组合构建一个Widget。

八、widget设置透明度

Android中:View有setAlpa方法
Flutter:在Flutter中如果要想改变透明度,我们可以给widget包裹一个Opacity widget来做到这一点。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:41:17  更:2022-03-10 22:43:57 
 
开发: 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/24 19:11:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码