Jetpack Compose - MotionLayout
Posted
技术标签:
【中文标题】Jetpack Compose - MotionLayout【英文标题】: 【发布时间】:2021-12-26 17:07:18 【问题描述】:什么等价于:
<Transition
motion:constraintSetEnd="@id/end"
motion:constraintSetStart="@id/start"
motion:duration="1500"
motion:motionInterpolator="linear">
<OnSwipe
motion:dragDirection="dragUp"
motion:touchAnchorId="@id/view1"
motion:touchAnchorSide="top" />
</Transition>
关于 Compose 的 MotionLayout 吗? 我在这两个链接上都没有看到答案:
https://github.com/androidx/constraintlayout/wiki/Introduction-to-MotionLayout-in-Compose https://github.com/androidx/constraintlayout/wiki/Compose-MotionLayout-JSON-Syntax
我只想在手动滚动时为我的场景设置动画,而不是像示例中那样单击按钮。
谢谢!
【问题讨论】:
【参考方案1】:Compose 中的 MotionLayout 还没有内置支持。
Compose 具有滑动处理功能 一种方法如下所示:
var componentHeight by remember mutableStateOf(1000f)
val swipeableState = rememberSwipeableState("Bottom")
val anchors = mapOf(0f to "Bottom", componentHeight to "Top")
val mprogress = (swipeableState.offset.value / componentHeight)
然后将进度传递到 MotionLayout Composable。
MotionLayout(motionScene = "", progress = mprogress, ...)
Here 是您如何编写代码的示例。
【讨论】:
太棒了!这正是我需要的!谢谢你。你知道是否可以在 MotionLayout 顶部添加 SwipeRefresh 吗? 其他问题:你知道如何使用 JSON 语法制作一个垂直偏差吗?我没有找到参数。 总结一下,有没有可以找到所有不同 json 值的链接? github.com/androidx/constraintlayout/wiki/…以上是关于Jetpack Compose - MotionLayout的主要内容,如果未能解决你的问题,请参考以下文章
Android Jetpack Compose学习—— Jetpack compose基础布局
Android Jetpack Compose学习—— Jetpack compose基础布局
Android Jetpack Compose学习—— Jetpack compose入门