Как сделать салфетку на элементе 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: Здесь вы являетесь примером для использования настраиваемого представления.