问题标签 [jetpack-compose-animation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在 Jetpack Compose 中为动态列表的元素设置动画?
如何使用动画将列表的元素转换为新列表(可能大小不同)?
我有一个饼图,当它的切片(分数)发生变化时,我想将以前的分数动画化为新的分数。问题是,切片的数量每次都可以不同。
如果新切片的数量小于当前切片的数量,则当前的额外切片应从其当前分数变为0
.
如果新切片的数量大于当前切片的数量,则新的额外切片应该从动画0
到它们的分数。
我目前已经用一个恒定大小的列表(10,因此切片不能超过 10)实现了这一点
(请注意,图表外观的初始动画可能与后续动画不同):
下面是一个示例图表,最初有两个切片,然后动画到一个切片
(第一个切片动画到单个新分数,第二个切片动画到0
-<br /> 它们有点不一致,可能是因为插值和动画规范) :
android - Jetpack Compose MutableTransitionState currentState 持有错误的值
我使用AnimatedVisibility
动画从 a 中删除一个项目,LazyColumn
以及MutableTransitionState
捕捉动画的结尾以从LazyColumn
的列表中删除该项目。
我为此编写了一个方便的扩展函数:
从某种意义上说,它返回正确的值(经过测试)是正确的,但currentState
似乎false
只是最初,所以我无法捕捉到我唯一感兴趣的事件 - Invisible
。
这是我的LazyColumn
:
我ItemCard
的 aButton
变为animationState.tagetValue
,false
并且状态记录在卡内:
很不幸,我的日志是这样的:
那么隐形状态在哪里,即false
currentState
?我做错了什么吗?
android - 如何旋转可组合并将进度侦听器添加到旋转中?
我正在尝试将基于视图的代码转换为 Compose。我有一个可组合的,它将图像(画家)作为参数并使用图像可组合显示它。我想要的是,每当参数值发生变化时,我的图像应该进行 360 度旋转,并且图像应该在角度约为 1 时发生变化。180度(即动画中途)
这是我制作的可组合。
现在,当displayImage
更改时,新图像立即显示,没有任何动画(显然)。如何实现所需的动画?
我试图转换的代码如下所示:
android - 如何在 Jetpack Compose 中实现平移 + 缩放动画?
我在屏幕的一个角落有一个带有图像的屏幕,我想将它动画到屏幕的中心。有点像从
到
第一个位于屏幕的左上角,第二个位于屏幕中央。如何在两种状态之间设置动画?
kotlin - Jetpack Compose - 在状态变化时播放复杂的动画
如何在切换到特定状态时使用协程播放复杂动画?
android - 动画画布内容更改
我有一个占据整个屏幕的图像。它就像一个背景。
我正在使用 a渲染它Canvas
的方法drawImage(...)
很好,并且符合我的期望。我想Image
在点击它时更改它的来源。
如何为这种变化设置动画?
我不认为Canvas
任何东西都提供动画 API,更不用说图像了。任何类型的动画都可以。交叉淡入淡出,滑动(顺便说一句,首选)。在 Canvas 中甚至可能吗?如果不是,那么实现这一点的正确方法是什么?
我的图像绘制代码:
android - Android Jetpack Compose 复杂的动画性能问题
我刚刚开始编写动画,现在我很困惑我有一个登录屏幕,我想使用动画,但我注意到我的代码存在性能问题。当我第一次来懒惰地单击框并且我不想为此做些什么时,还有其他解决方案还是那样?我该如何解决这个问题?
android - Android Jetpack Compose (Composable) 手动触发更改
我有一些自定义可组合动画,它使用 LaunchedEffect 在 [minTemperature, maxTemperature] 范围内更改值,我想手动触发动画。这在我更改 minTemperature 和 maxTemperature 值时触发,所以我有LaunchedEffect(minTemperature, maxTemperature)。但问题是,只有当值更改为新值时才会触发可变状态。
因此,如果我调用 setTemperature() 方法,则不会触发动画。所以我所做的是创建新的状态值“temperatureAnimationSwitch”,它是使用视图模型中的公共方法 startTemperatureAnimation() 手动切换的。所以这将触发 LaunchedEffect 的重新启动。
我的问题是:
- 这是使用开关值的最佳方法吗?
- 当 minTemperature 或 maxTemperature 值设置为之前的值时发生更改事件时,有没有办法触发动画?
- 有没有类似'state, flow, livedata..'的对象,但它可以被触发,即使我们将它的当前值更改为它自己。