type
status
date
slug
summary
tags
category
password
icon
接上文
Compose 动画
简单值动画
animateXxxxxAsState()
可见性动画
AnimatedVisibility()
内容大小动画
Modifier.animateContentSize()
多值动画
val transition:Transition = updateTransition(targetState = ${targetValue},label = "说明这个动画是干什么的")
Transition.animateDp
Transition.animateColor
Transition.animateFloat
Transition.animateValue
…………
重复动画
rememberInfiniteTransition
InfiniteTransition.animateFloat
………
手势动画
案例 模拟 list 滑动删除
手势滑动逻辑

手势
点击
clickable
修饰符允许应用检测对己应用该修饰符的元素的点击。
- 当需要更大灵活性时,你可以通过
pointerInput
修饰符提供点按手势检测器
滚动
滚动修饰符
verticalScroll
和horizontalScroll
修饰符提供一种最简单的方法,可以让用户在元素内容边界大雨最大尺寸约束时滚动元素。
- 借助
ScrllState
,可以更改滚动位置或获取当前状态,如需要使用默认参数创建此列表,请使用rememberScrollState()
可滚动修饰符
scrollable
修饰符与滚动修饰符不同,区别在于scrollable
可检测滚动手势,但不会偏移其内容。此修饰符需要ScrollableController
才能正常运行。构造ScrollableController
时,您必须提供一个consumeScrollDelta
函 数,该函数将在每个滚动步骤(通过手势输入、平滑滚动或投掷)调用,并且增量以像素为单位,为了确保正确传播事件,必须从此函数返回使用的滚动距离量。
自动嵌套滚动
- 简单的嵌套滚动无需您执行任何操作,启动滚动操作的手势会自动从子级传播到父级,这样一来,当子级无法进一步滚动时,手势就会由其父元素处理。
拖动
- draggable 修饰符是单一方向拖动手势的高级入口点,并且会报告拖动距离(以像素为单位)。
上述方式只能单次拖动在水平和垂直方向上,不可以连续左右上下任意拖动
- 请务必注意,此修饰符与 scrollable 类型,仅检测手势,需要自己保存状态并在屏幕上表示,例如通过 offset 修饰符移动元素。
滑动
使用swipeable
修饰,可以拖动元素,释放后,这些元素通常朝一个方向定义的两个或多个锚点呈现动画效果,其常见用途是实现“滑动关闭”模式
最新的(Compose已经淘汰了swipeable操作相关的一系列api,可以采用拖动操作符实现同样的效果
多点触控(平移、缩放、旋转)
- 如果需要检测用于平移、缩放和旋转的多点触控手势,可以使用 transformable 修饰符。此修饰符本身不会转换元素,只会检测手势。
- 作者:shuouyang
- 链接:https://notion-tree.vercel.app/article/36498476-9cef-402a-af53-1346245d645b
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。