列表视图动画淡出然后添加新行

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;
            }
        });