2015-05-13 57 views
0

我想實現一個listView刷卡來選擇多個項目。基本上,用戶將向右滑動項目以顯示覆選框/佈局以顯示該項目被選中。Android ListView回收翻譯視圖

我有onTouchListener工作來翻譯視圖的權利,但問題是ListView回收視圖。這意味着翻譯的視圖即使不應該出現也是如此。

我附上的getView()的onTouchListener我的適配器的方法,像這樣:

root.setOnTouchListener(新MySwipeListener(持有者,位置));

This is a GIF of my problem

回答

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 /翻譯狀態arraylist。