
Compose
文章平均质量分 52
compose
tong_Ci
这个作者很懒,什么都没留下…
展开
-
Compose Effect
DisposableEffect也是一个可组合函数,当DisposableEffect在其key值变化或组合函数离开组件树时,也会取消启动的协程,并会在取消协程前调用其回收方法进行资源回收相关操作,可以对一些资源等进行清理。由于LaunchedEffect是可组合函数,因此只能在其他可组合函数中使用,想要在可组合项外启动协程,需要对这个协程存在作用域限制,以便协程的退出组合后自动取消,当produceState进入Compose时,获取数据的任务被启动,当其离开Compose时,该任务被取消。原创 2025-04-10 21:39:28 · 290 阅读 · 0 评论 -
Compose手势
可以在修饰符上调用verticalScroll或horizontalScroll并传入ScrollState将其设置为可滚动,可以通过scrollState设置滚动位置或获取当前状态。可滚动修饰符scrollable只是检测滚动手势,控件不会发生实际偏移,以下案例用来显示手势滑动的距离。可以使用draggable修饰器监听其在水平或垂直方向上的滚动,并设置其偏移达到拖动的效果。简单的嵌套滚动的那个子级滚动到顶部无法在滚动时,手势会自动传递给父级进行处理。原创 2025-04-06 22:11:04 · 131 阅读 · 0 评论 -
Compose动画
当目标值变化时 会提供一个变化的过程compose提供了如下函数进行设置使用AnimatedVisibility包裹或在父容器的装饰器中调用animateContentSize方法,可以自定义进入和退出动画可以在容器的装饰器中调用animateContentSize方法进行设置使用updateTransition创建一个transition并使用其属性创建动画 当改变创建使用的属性行transition创建的所有动画都会执行创建一个InfiniteTransition对象并使用其中的动画函数。原创 2025-04-06 19:29:52 · 379 阅读 · 0 评论 -
CompositionLocal
其中compositionLocalOf创建的对象值发生变化时,只有在其作用域下有使用该属性的函数才会发生重组,而staticCompositionLocalOf创建的对象值发生变化时,处于该作用域下的所有函数都会发生重组,在创建的对象不怎么会发生变化时staticCompositionLocalOf的开销比compositionLocalOf要小,因为compositionLocalOf会去追踪使用该值的函数。CompositionLocal为隐式传参,可以通过下面的代码理解隐式传参。原创 2025-04-03 20:52:15 · 172 阅读 · 0 评论 -
Compose状态
如旋转屏幕等会丢失数据,可以通过rememberSaveable创建状态会自动保存实现了Parcelize的数据。1.compose内的状态使用remember函数保证函数发生重组时保存状态可以通过下面这3中方式创建。2.remember可以传入唯一key保证不会一直初始化。此外Map和List需要自行定义保存和恢复时候的逻辑。原创 2025-04-03 20:33:43 · 113 阅读 · 0 评论 -
compose布局学习总结
1.对于单个控件可以在修饰符layout中进行自定义使用measurable.measure(constraints) 进行一次测量拿到尺寸的具体属性并重新设置控件的宽高,然后再layout中设置显示内容的开始位置。可以在布局中去指定测量的时候按最大或者最小值去测量,如下面的分隔线设置的是最大宽度,当时布局中使用intrinsics指定测量按满足子控件的最大宽度显示。相当于FrameLayout 需要明确的指出控件的具体位置。可以设置一个形状然后再包裹对应的控件如设置一个圆形的图片。原创 2025-03-29 22:17:47 · 412 阅读 · 0 评论