Android listview动画淡出,然后添加新行
嘿,伙计们,我正试图在android的待办事项列表应用程序中制作一个淡出动画。我有这个密码Android listview动画淡出,然后添加新行,android,listview,animation,Android,Listview,Animation,嘿,伙计们,我正试图在android的待办事项列表应用程序中制作一个淡出动画。我有这个密码 public void removeToDo(){ myItems.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, final int
public void removeToDo(){
myItems.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
ObjectAnimator anim = ObjectAnimator.ofFloat(view, View.ALPHA, 0);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
items.remove(position);
itemsAdapter.notifyDataSetChanged();
}
});
anim.start();
return true;
}
});
}
public void removeToDo(){
myItems.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父对象、视图、最终整型位置、长id){
ObjectAnimator anim=ObjectAnimator.offload(view,view.ALPHA,0);
anim.addListener(新的AnimatorListenerAdapter(){
@凌驾
AnimationEnd上的公共无效(Animator动画){
项目。移除(位置);
itemsAdapter.notifyDataSetChanged();
}
});
anim.start();
返回true;
}
});
}
是的,它的淡出效果很好,但问题是,当我添加一个新项目时,它重用了已经淡出该项目的行,因此结果是,在添加一个新项目时,我将有一个新行,但上面没有文本
请帮助我,我只是个新手:)试试这个解决方案
ObjectAnimator
不可靠,请使用Animation
代替此选项
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, final View view, final int position, long id) {
final Adapter adapter = (Adapter) parent.getAdapter();
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
fadeOut.setDuration(500);
fadeOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
adapter.pointItems.remove(position);
adapter.notifyDataSetChanged();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
view.startAnimation(fadeOut);
return true;
}
});
listView.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔长单击(AdapterView父视图、最终视图、最终整型位置、长id){
最终适配器=(适配器)parent.getAdapter();
动画淡出=新的AlphaAnimation(1,0);
设置内插器(新的加速器内插器());
衰减设置持续时间(500);
fadeOut.setAnimationListener(新的Animation.AnimationListener(){
@凌驾
onAnimationStart上的公共无效(动画){
}
@凌驾
onAnimationEnd上的公共无效(动画){
适配器。点项目。移除(位置);
adapter.notifyDataSetChanged();
}
@凌驾
onAnimationRepeat上的公共无效(动画){
}
});
视图。开始激活(淡出);
返回true;
}
});
谢谢,伙计,这很有效。我还提出了一些意见,我可以在RecyclerView中使用ObjectAnimator?我只使用动画,并向您推荐。