作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要当我点击加号按钮时添加动画的新项目这是代码
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/
我是一名优秀的程序员,十分优秀!