ItemTouchHelper.SimpleCallback itemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
try {
final int position = viewHolder.getAdapterPosition();
if (direction == ItemTouchHelper.RIGHT){
// prepare to delete
}
else {
// prepare to edit
}
} catch(Exception e) {
Log.e("MainActivity", e.getMessage());
}
}
// You must use @RecyclerViewSwipeDecorator inside the onChildDraw method
@Override
public void onChildDraw (Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive){
new RecyclerViewSwipeDecorator.Builder(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive)
.addSwipeLeftBackgroundColor(ContextCompat.getColor(getActivity(), R.color.recycler_view_item_swipe_left_background))
.addSwipeLeftActionIcon(R.drawable.ic_archive_white_24dp)
.addSwipeRightBackgroundColor(ContextCompat.getColor(getActivity(), R.color.recycler_view_item_swipe_right_background))
.addSwipeRightActionIcon(R.drawable.ic_edit_white_24dp)
.addSwipeRightLabel(getString(R.string.action_delete))
.setSwipeRightLabelColor(Color.WHITE)
.addSwipeLeftLabel(getString(R.string.action_edit))
.setSwipeLeftLabelColor(Color.WHITE)
.create()
.decorate();
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchCallback);
itemTouchHelper.attachToRecyclerView(rvProducts);
Пока все хорошо. Я могу легко определить, проводит ли пользователь пальцем влево или вправо. Теперь вопрос: как сделать представления «Редактировать» и «Удалить» кликабельными?
Я использую этот RecyclerViewSwipeDecorator для реализации открывающихся представлений при пролистывании RecyclerView следующим образом: [img]https://i.stack.imgur.com/usW1n.png [/img]
// You must use @RecyclerViewSwipeDecorator inside the onChildDraw method @Override public void onChildDraw (Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive){ new RecyclerViewSwipeDecorator.Builder(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive) .addSwipeLeftBackgroundColor(ContextCompat.getColor(getActivity(), R.color.recycler_view_item_swipe_left_background)) .addSwipeLeftActionIcon(R.drawable.ic_archive_white_24dp) .addSwipeRightBackgroundColor(ContextCompat.getColor(getActivity(), R.color.recycler_view_item_swipe_right_background)) .addSwipeRightActionIcon(R.drawable.ic_edit_white_24dp) .addSwipeRightLabel(getString(R.string.action_delete)) .setSwipeRightLabelColor(Color.WHITE) .addSwipeLeftLabel(getString(R.string.action_edit)) .setSwipeLeftLabelColor(Color.WHITE) .create() .decorate(); super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } };
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchCallback); itemTouchHelper.attachToRecyclerView(rvProducts); [/code] Пока все хорошо. Я могу легко определить, проводит ли пользователь пальцем влево или вправо. Теперь вопрос: как сделать представления «Редактировать» и «Удалить» кликабельными?
У меня есть RecyclerView внутри RecyclerView. Когда я запускаю просмотр, все в порядке. Но когда я обновляю свой RecyclerView (родительский), мое представление автоматически прокручивается до первого дочернего RecyclerView. Я не вижу элемента в...
В настоящее время я реализую в Android параметры обновления/удаления с помощью пролистывания и столкнулся с проблемой в своем коде. Я использую SwipeHelper, чтобы включить пролистывание по строкам списка, и хотя функция пролистывания работает, я...
Я создал нижний лист с макетом движения, который по умолчанию открыт на 35%, а внутри у нас есть просмотр вкладок и пейджер просмотра, и при пролистывании tabView я хочу, чтобы высота пейджера просмотра исчезла. Но onSwipe не работает при нажатии на...
Когда пользователи удерживают экран, он должен стать прозрачным для пальца, чтобы они могли видеть основной макет. Когда они продолжат удерживать палец и проводить пальцем, я бы хотел создать переход, при котором прозрачность будет распространяться...
Это похоже на вкладки на личной странице Instagram. При пролистывании экран будет отображаться с пробелом, равным объему пространства, которое вы прокрутили на предыдущем экране. Есть ли у кого-нибудь решение?
Перепробовал много вещей, но не получил...