Jetpack Compose中使用animateDpAsState是否需要搭配remember?
问题解答
你的想法是错误的,不需要手动为animateDpAsState外层包裹remember。
- Jetpack Compose中所有
XXXAsState系列的动画API内部都已经实现了remember逻辑,会自动跨重组保存动画运行的状态,开发者无需额外手动处理状态保留。 - 你尝试的
val extraPadding by remember { animateDpAsState(...) }写法本身存在语法错误:animateDpAsState是标注了@Composable的函数,而remember的计算参数lambda不允许调用Composable函数,这就是你收到对应报错的根本原因。
你贴的官方示例代码中的写法完全符合规范,animateDpAsState会监听你传入的目标值(代码中是if (expanded) 48.dp else 0.dp),当目标值发生变化时,自动生成平滑过渡的中间padding值,且自动保留动画进度无需额外处理。
内容的提问来源于stack exchange,提问作者HelloCW
相关产品推荐
相关产品推荐

