Android ListView回收翻译视图

时间:2015-05-13 03:03:34

标签: android

我正在尝试实现listView滑动以选择多个项目。基本上,用户将在项目上向右滑动以显示复选框/布局,以显示该项目已被选中。

我让onTouchListener正常工作以正确转换视图,但问题是ListView回收视图。这意味着即使不应该翻译的视图也会出现。

我在我的适配器的getView()方法中附加了onTouchListener,如下所示:

root.setOnTouchListener(new MySwipeListener(holder,position));

This is a GIF of my problem

1 个答案:

答案 0 :(得分:1)

您需要做的就是在ArrayList中维护状态,即创建一个arraylist(如果在pojo / bean类中维护一个标志,则更好) onBIndViewHolder做这样的事情。

  ArrayList<Boolean> isTranslated;

  public void onBindViewHolder(ViewHolder holder, int position) {
   if(isTranslated.get(position)){
    holder.container.setTranslationX(100);
   }
  else{
  holder.container.setTranslationX(0);
   }
       ///TODO rest of your logic

  }

别忘了用swipestate / translate状态更新arraylist。