Android notifyDataSetChanged()只是最后添加的项目

sch*_*sch 2 android android-animation android-listview notifydatasetchanged

我有一个ListView和它的适配器类扩展BaseAdapter.

我想为列表视图中的一个自定义部分设置动画.

我有部分动画,从右到左滑动 - 这是第一次非常好.

在适配器的方法中,与所示类似,为简洁起见:

public View getView(){

    Animation an = AnimationUtils.loadAnimation(mContext, R.anim.transladar);
    an.reset();
    vi.startAnimation(an);
    return vi;
}
Run Code Online (Sandbox Code Playgroud)

看起来不错,但是当我添加一个项目 chatAdapter.notifyDataSetChanged();被触发时刷新我的所有项目并重新启动动画.

我只想动画适配器本身的最后一项.

我希望你能帮助我.

Awa*_*Kab 5

你可以添加公共布尔变量(isFirstTime = true;)并在你的getView()检查中像这样

if(isFirstTime){
    Animation an = AnimationUtils.loadAnimation(mContext, R.anim.transladar);
    an.reset();
    vi.startAnimation(an);

   if(position == getCount()-1) isFirstTime =false;
}else{
  if(position == getCount()-1){
     Animation an = AnimationUtils.loadAnimation(mContext, R.anim.transladar);
    an.reset();
    vi.startAnimation(an);
   }

}
Run Code Online (Sandbox Code Playgroud)

注意:这是快速解决方案我不知道是否有其他方法.

希望这能帮到你.