gpt4 book ai didi

android - 如何为 Recyclerview 的特定项目设置动画?

转载 作者:行者123 更新时间:2023-11-30 04:55:17 24 4
gpt4 key购买 nike

这是回收站元素的图片: enter image description here

我想要当我点击加号按钮时添加动画的新项目这是代码

viewHolder.cart_plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
menu.add(position+1,menu.get(position));
Singleton.getInstance().getMenuExtraArrayList().add(position+1,menu.get(position));
((CartActivity)context).cartIconCounter.setText( Singleton.getInstance().getMenuExtraArrayList().size()+"");
((CartActivity)context).setPrice();
notifyDataSetChanged();
setAnimation(position,viewHolder.itemView);

}
});

这里是setAnimationMethod

private void setAnimation(int psition, View itemView) {
if (psition > lastPosition)
{
Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);
itemView.startAnimation(animation);
lastPosition = psition;
}
}

lastposition的初始值为-1

最佳答案

你在这里通过调用 notifyDataSetChanged() 告诉回收者 View 你的数据集的所有已经被改变并且他们应该被重新绘制,而你实际上只需要插入在 position+1 处添加的 View 。

要仅通知回收器 View 有关插入的项目,您只需调用 notifyItemInserted(position+1)(假设列表项目索引和回收器 View 项目位置相同)

您可能也有兴趣学习一种巧妙的方法来实现 RecyclerView 动画 here ,它使用内置的 android:layoutAnimation 属性来定义布局插入动画,即:

<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/layout_animation_fall_down"
/>

关于android - 如何为 Recyclerview 的特定项目设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59301709/

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