列表视图动画淡出然后添加新行
listview animation fadeout then adding new row
大家好,我正在尝试在 android 的待办事项列表应用程序中制作淡出动画。我有这个代码
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;
}
});
}
是的,它的淡出很漂亮,但问题是当我添加一个新项目时,它会重复使用已经淡出该项目的行,所以结果是我在添加新项目时会有一个新行,但没有文本它。
http://i.stack.imgur.com/o6wPz.jpg
请帮助我只是一个新手:)
试试这个解决方案。 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;
}
});
大家好,我正在尝试在 android 的待办事项列表应用程序中制作淡出动画。我有这个代码
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;
}
});
}
是的,它的淡出很漂亮,但问题是当我添加一个新项目时,它会重复使用已经淡出该项目的行,所以结果是我在添加新项目时会有一个新行,但没有文本它。
http://i.stack.imgur.com/o6wPz.jpg
请帮助我只是一个新手:)
试试这个解决方案。 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;
}
});