2016-07-15 46 views
1

當我滑動Carditem時,我有問題了解調用ItemTouchHelper的哪個回調方法,但是我沒有完成滑動操作,而是將其轉回到正常狀態。ItemTouchHelper回調

我有什麼當前:

@Override 
    public void onSwiped(final RecyclerView.ViewHolder viewHolder, int direction) { 
     mCardItemAdapter.deleteCard(viewHolder.getAdapterPosition(), mRecyclerView); 
    } 

從適配器中刪除的項目。

和:

@Override 
public void onChildDraw(Canvas c, RecyclerView recyclerView, ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { 
    Log.d("dx =",""+dX); 
    // Can be modified 
    if(dX < -300) { 
      View v = viewHolder.itemView; 
      RelativeLayout mLayout = (RelativeLayout) v.findViewById(R.id.card_item_layout_relative_layout); 
      mLayout.setBackgroundResource(R.color.red); 
     } 
     super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); 
} 

我想要實現什麼?當我滑動時,背景變成紅色,但當我在釋放onSwiped之前的滑動時,背景會保持紅色,但我希望它再次變成白色。

希望有人能幫助我解決這個問題。

+0

'如果(DX <-300){...}否則{mLayout.setBackgroundResource(R.color.white); }'? – Bill

+0

ok wtf?我之前有過這個,但它沒有工作哦,也許我是垃圾場。寫這個答案,我會標記它:D – greedsin

回答

1

添加其他else子句:

if(dx < -300){...} else { mLayout.setBackgroundResource(R.color.white); }

相關問題