Проведите пальцем, чтобы закрыть не работает в RecyclerView - PullRequest
0 голосов
/ 01 октября 2019

Я использую ItemTouchHelper.SimpleCallback, чтобы провести пальцем влево / вправо, и удаляю элемент из RecyclerView Adapter.

Хотя при смахивании на элемент ничего не происходит, также я заметил следующее сообщение в logcat при каждой попыткеswap.

W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!

Я предполагаю, что это связано с проблемой производительности, но не уверен, что это вызывает смахивание?

Было бы здорово, если кто-тоМожет помочь понять, что здесь не так?

Вот мой ItemTouchHelper.SimpleCallback класс.

public class SwipeToDismissCallback extends ItemTouchHelper.SimpleCallback {

private Context mContext;

SwipeToDismissCallback(@NonNull Context context) {
    super(0, ItemTouchHelper.RIGHT);
    this.mContext = context;
}

@Override
public boolean onMove(@NonNull RecyclerView recyclerView,
                      @NonNull RecyclerView.ViewHolder viewHolder,
                      @NonNull RecyclerView.ViewHolder target) {
    return false;
}

@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
    Toast.makeText(mContext, "Hey there, this is swiped...", Toast.LENGTH_SHORT).show();
 }
}

В моем Fragment классе:

SwipeToDismissCallback swipeToDismissCallback =
            new SwipeToDismissCallback(Objects.requireNonNull(getActivity()));
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(swipeToDismissCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
...