Как сделать салфетку на элементе RecyclerView без сторонней библиотеки
Есть ли у них прямая поддержка слайда для удаления/архивирования (справа налево или слева направо) в элементе RecyclerView.
И вместо удаления/архива я хочу четыре кнопки в элементе списка.
что-то вроде https://github.com/47deg/android-swipelistview, но для recyclerview и официальной поддержки не какой-либо сторонний lib
Ответы
Ответ 1
Да, вы можете сделать это с помощью класса ItemTouchHelper, предоставляемого библиотекой поддержки.
PS Я должен был сделать это на днях и также хотел избежать использования сторонней библиотеки, если это возможно. Библиотека может делать гораздо больше, чем вам нужно, и поэтому она может быть более сложной, чем необходимо в вашем случае. Это также может увеличить количество ваших методов. Это всего лишь пример причин, по которым вам следует избегать добавления lib в качестве быстрого решения вашей проблемы.
РЕДАКТИРОВАТЬ: я попробовал это, см. Этот пост в блоге и этот репозиторий GitHub.
Ответ 2
Да, есть. Используйте ItemTouchHelper. Попробуйте клонировать этот проект и посмотрите, как он используется.
Для конкретного файла, см. Строку 87
Для ленивых людей, которые не хотят нажимать на ссылки, вот как вы настраиваете:
ItemTouchHelper.SimpleCallback simpleCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//do things
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
recyclerView
- это переменный вид рециркулятора.
Есть и другие направления, кроме ItemTouchHelper.RIGHT
, попробуйте поэкспериментировать.
Ответ 3
Почему вы не хотите использовать стороннюю библиотеку? Если вы хотите четыре кнопки, просто отредактируйте эту библиотеку (вы можете соблюдать их условия лицензии)
Я знаю, что ваш вопрос заключается в том, что вы не используете lib, но я нахожу этот lib легким и готовым к использованию. Если вы хотите взглянуть на то, что они делают, просто просмотрите код.
EDIT: Здесь вы являетесь примером для использования настраиваемого представления.