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 滑动删除
手势滑动逻辑
notion image

手势

点击

  • clickable 修饰符允许应用检测对己应用该修饰符的元素的点击。
  • 当需要更大灵活性时,你可以通过 pointerInput 修饰符提供点按手势检测器

滚动

滚动修饰符
  • verticalScrollhorizontalScroll 修饰符提供一种最简单的方法,可以让用户在元素内容边界大雨最大尺寸约束时滚动元素。
  • 借助 ScrllState,可以更改滚动位置或获取当前状态,如需要使用默认参数创建此列表,请使用 rememberScrollState()
可滚动修饰符
  • scrollable 修饰符与滚动修饰符不同,区别在于 scrollable 可检测滚动手势,但不会偏移其内容。此修饰符需要 ScrollableController 才能正常运行。构造ScrollableController 时,您必须提供一个 consumeScrollDelta函 数,该函数将在每个滚动步骤(通过手势输入、平滑滚动或投掷)调用,并且增量以像素为单位,为了确保正确传播事件,必须从此函数返回使用的滚动距离量。
自动嵌套滚动
  • 简单的嵌套滚动无需您执行任何操作,启动滚动操作的手势会自动从子级传播到父级,这样一来,当子级无法进一步滚动时,手势就会由其父元素处理。

拖动

  • draggable 修饰符是单一方向拖动手势的高级入口点,并且会报告拖动距离(以像素为单位)。
    • 上述方式只能单次拖动在水平和垂直方向上,不可以连续左右上下任意拖动
  • 请务必注意,此修饰符与 scrollable 类型,仅检测手势,需要自己保存状态并在屏幕上表示,例如通过 offset 修饰符移动元素。

    滑动

    • 使用 swipeable 修饰,可以拖动元素,释放后,这些元素通常朝一个方向定义的两个或多个锚点呈现动画效果,其常见用途是实现“滑动关闭”模式
    最新的(Compose已经淘汰了swipeable操作相关的一系列api,可以采用拖动操作符实现同样的效果

    多点触控(平移、缩放、旋转)

    • 如果需要检测用于平移、缩放和旋转的多点触控手势,可以使用 transformable 修饰符。此修饰符本身不会转换元素,只会检测手势。
     
    Compose-高级Compose-基础
    Loading...
    shuouyang
    shuouyang
    android开发 ReactNative开发 小程序开发
    最新发布
    AOSP 环境搭建
    2025-3-29
    View 绘制流程-源码解析
    2025-3-12
    HTTP
    2025-3-4
    JVM 虚拟机
    2025-2-28
    蓝牙-BLE-基础
    2025-2-28
    从 OkHttp 的原理来看 HTTP
    2025-2-19
    公告
    🎉热点信息🎉
    --- 1 ---
    Jet Brains 推出新的跨平台支持 Kotlin MultiPlatform
    --- 2 ---
    新的小巧便捷的依赖注入框架 Koin
    --- 3 ---
    新一代 API 查询语言 GraphQL