学习源:https://www.bilibili.com/video/BV1ob4y1a7ad?p=4&vd_source=d61ce9acf622a878da40ae7bdecdaad9
(前期笔记粗糙,后期维护)
Compose是什么?
用于构建Android界面的新工具包,简化并加快Android界面开发,用更好的代码,强大的工具,直观的Kotlin Api打造精彩的应用。
优势:
通过组件化,使代码简洁易于维护,避免更多bug。
直观,通过state,只描述界面,应用状态变化时,界面自动更新
加快应用开发,兼容现有代码,xml布局,可预览。
功能强大,Material design更强大的支持。
Compose是围绕可组合函数构建的,描述应用数据的外观并提供数据依赖项,不必关注界面的构建过程。
要创建可组合函数,将@compose注解添加到函数名称中。
image.png
布局
构建界面层次结构
使用column垂直排列元素,row水平排列项,box堆叠元素
image.png
配置布局
装饰和配置可组合项,compose可使用修饰符,modifier
image.png
material design
material design围绕三大元素构建:颜色,排版,形状
深色主题
image.png
列表和动画
image.png
image.png
当界面重绘时,局部变量不能够保存,故通过by remember开辟私有空间(隶属于compose函数,专门保存内部变量),通过by委托,监控变化。
image.png
动画
image.png
通过by animateColorAsState,可渐变
image.png
为什么要使用compose,能带来什么好处
Compose可解决的问题
编写可维护代码的时候,减少耦合,增加内聚
尽可能将相关代码组合起来,以便轻松维护,关注点分离
image.png
image.png
image.png
image.png
image.png
声明式UI
与命令式相反
image.png
image.png
声明式UI的含义
只描述UI,不关心如何转换到对应的状态
组合和继承
image.png
image.png
image.png
image.png
image.png
image.png
image.png
重组
image.png
重组指的是composable函数在任何时候都可以被重新调用,当层级中某一部分改变。不需要重新计算整个层次结构
image.png
小结:
image.png