2016-07-15 23 views
1

У меня проблемы с пониманием того, какой метод обратного вызова ItemTouchHelper вызывается, когда я прокручиваю карту, но я не заканчиваю салфетки и вместо этого верну его обратно в нормальное состояние.ItemTouchHelper callback

Что я имею в настоящее время:

@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

'если (йх <-300) {...} еще {mLayout.setBackgroundResource (R.color.white); } '? – Bill

+0

ok wtf? У меня было это раньше, но он не работал O.o ok, возможно, я был свалкой. Напишите это как ответ, и я отметю его: D – greedsin

ответ

1

Добавить дополнительный else пункт:

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

Смежные вопросы