gpt4 book ai didi

android - 我可以使用 MotionLayout 为 RecyclerView 中的单个项目设置动画吗?

转载 作者:行者123 更新时间:2023-11-29 22:54:47 26 4
gpt4 key购买 nike

我想在 recyclerview 中创建可展开的项目,我认为使用 MotionLayout 创建动画会非常简单。我创建了运动场景并测试了单个项目在回收器 View 内独立工作时 View 不会设置动画。

我尝试显示所有调试信息,它说正在发生转换,但 recyclerview 没有显示任何动画。我尝试通知项目动画师动画已经在我的 viewholder 上启动,但是没有用。

override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
recyclerView.itemAnimator?.onAnimationStarted(this@ViewHolder)
}
override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
recyclerView.itemAnimator?.onAnimationFinished(this@ViewHolder)
}

我原以为 motinolayout 状态转换会在 recyclerview 中起作用,但它们似乎不起作用。

单个列表项: enter image description here

内部列表: enter image description here

最佳答案

I want to create expandable items, inside a recyclerview, and I thought, using MotionLayout to create the animation would be super easy.

在内部使用 MotionLayout RecyclerView因为简单的展开动画有点矫枉过正,您可以通过在 RecyclerView 上使用简单的查看/隐藏来获得相同的动画。 Adapter onBindViewHolder .然后,当您想展开/折叠时,只需调用 notifyItemchanged与位置。那将节省您的时间。干杯!

在 RecyclerView 适配器内部,

holder.itemView.setOnClickListener(v -> {
// Get the current state of the item
boolean expanded = item.isExpanded();
// Change the state
item.setExpanded(!expanded);
// Notify the adapter that item has changed
notifyItemChanged(position);
});

关于android - 我可以使用 MotionLayout 为 RecyclerView 中的单个项目设置动画吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com