用途:面向 Kotlin Compose Android 列表行,演示同一行同时承载三种手势——点击、长按选中、侧滑触发操作——并通过一个模式标志改变点击含义。
主要能力:行由 Box 与两个子元素构成,底层为侧滑显露的操作图标,上层内容通过 Animatable 横向偏移;偏移未达到一半时图标不显示,达到全程时执行操作;selectionMode 为 true 时点击变为切换选中。
使用方式:示例代码给出 remember Animatable、maxOffset=360f、Crossfade 显露、Modifier.offset 布局阶段 lambda、combinedClickable 内按标志分支、pointerInput(selectionMode) 中 detectHorizontalDragGestures,并在 onDragEnd 中判断是否达到上限后执行操作并 animateTo(0f)。
适用场景:需要行级快捷操作与多选模式并存的列表界面。
限制与陷阱:pointerInput 必须以模式标志为 key 且块内仍要检查;偏移必须用布局阶段 lambda 而非 dp 修饰符;提交判定依赖钳制写入精确上限;显露阈值与提交阈值刻意不同;只消费自己方向的手势;拖拽结束无条件回位;长按冲突时传 null;选中模式下保留 combinedClickable 并按标志分支。验证步骤包括 grep pointerInput(Unit)、pointerInput(、offset {、maxOffset 以及手工长按进入选中后滑另一行。