ListView - 添加新行时的动画

时间:2017-01-24 16:02:05

标签: android listview animation

我只是想为"添加" listview中的方法。这很好用,但是也可以通过从列表视图中删除项目来触发动画。

所以

insert to index 0 -> "item 1" -> animation
insert to index 0 -> "item 2" -> animation
insert to index 0 -> "item 3" -> animation 

结果

item 3 
item 2
item 1

现在我要删除"第1项"例如......当然,动画是在索引0(第3项 - >开始动画)

上触发的

我怎么知道这是一种删除方法?

private static void blink(final View v) 
{
    Animation animation = new AlphaAnimation(0.0f, 1.0f);
    animation.setDuration(300);
    animation.setStartOffset(20);
    animation.setRepeatMode(Animation.REVERSE);
    animation.setRepeatCount(Animation.INFINITE);
    v.setAnimation(animation);

    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            v.setAnimation(null);
        }
    }).start();
}

适配器

@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent)
{
    LayoutInflater inflater = LayoutInflater.from(getContext());
    View view = inflater.inflate(R.layout.alert_custom_row, parent, false);

    if(position == 0) // HERE some like isNewRow()?
        blink(view);

    return view;
}

活动

adapter.insert("item", 0);
adapter.notifyDataSetChanged();

非常感谢帮助我。

1 个答案:

答案 0 :(得分:1)

如果没有另一个“list”对象,其中包含要比较适配器的getCount()的项目数,我不知道如何确定是添加还是删除它。