SharpCJ

Jetpack Compose(9)——自定义Composable

一、Composable 组件渲染流程 传统 View 体系中,视图的渲染流程可以分为三个步骤: 测量、布局、绘制。在 Compose 中,组件的渲染流程也可划分为三步:组合、布局、绘制。 组合:执行Composable函数体,生成并维护LayoutNode视图树。 布局:对于视图树中的每个LayoutNode进行宽高尺寸测量并完成位置摆放。 绘制:将所有LayoutNode...

Jetpack Compose(7)——触摸反馈

本文介绍 Jetpack Compose 中的手势处理。 官方文档的对 Compose 中的交互做了分类,比如指针输入、键盘输入等。本文主要是介绍指针输入,类比传统 View 体系中的事件分发。 说明:在 Compose 中,手势处理是通过 Modifier 实现的。这里,有人可能要反驳,Button 这个可组合项,就是专门用来响应点击事件的,莫慌,接着往下看。 一、点按手势 1.1 ...

Jetpack Compose(6)——动画

本文介绍 Jetpack Compose 动画。 官方文档 关于动画这块,第一次看官网,觉得内容很杂,很难把握住整个框架结构,很难去对动画进行分类。参考了很多文献资料,大多数都是从高级别 API 开始讲解,包括官网也是如此。我发现这样不太容易理解,因为高级别 API 中可能会涉及到低级别 API 中的一些方法,术语等。所以本文从低级别 API 讲起。 一、低级别动画 API 1.1 ani...

Jetpack Compose(3) —— 状态管理

上一篇文章拿 TextField 组件举例时,提到了 State,即状态。本篇文章,即讲解 State 的相关改概念。 一、什么是状态 与其它声明式 UI 框架一样,Compose 的职责非常单纯,仅作为对数据状态的反应。如果数据状态没有改变,则 UI 永远不会自行改变。在 Compose 中,每一个组件都是一个被 @Composable 修饰的函数,其状态就是函数的参数,当参数不变,则函...