2016-07-15 1 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); }

関連する問題