Обновление RecyclerView, когда все элементы удалены - PullRequest
0 голосов
/ 13 октября 2019

У меня есть RecyclerView, который показывает список элементов.

Если нет элементов, которые можно показать, в представлении реселлера отображается один элемент с определенным видом (чтобы сообщить пользователю, что нетвместо белого экрана)можно удалять элементы один за другим, если мы нажмем на них.

Я хотел бы установить isEmpty на true и обновить RecyclerView, когда dataSet равен нулю.

Я уже знаю, где вызвать этот метод , но я действительно не знаю, как я могу это сделать? (т.е. обновите RecyclerView с помощью isEmpty = true, чтобы я мог отобразить ячейку, которая объясняет пользователю, что записи больше нет).

Ответы [ 3 ]

0 голосов
/ 13 октября 2019

Рекомендуется использовать пустое представление вне RecyclerView, но в случае, если вы хотите делать то, что вы хотите:

1. в onCreateViewHolder надувать только один макет, который имеет пустой вид и представления элементов

при удалении элемента проверьте, если ваш массив пуст, а затем добавьте нулевой элемент, а затем в onBindViewHolder проверьте модель, если модель является видимым нулевым пустым представлением, в противном случае покажите представление элемента

сводка:

onBind:

модель имеет значение NULL: пусто. Видна

модель не имеет значение: элемент. Видна

0 голосов
/ 13 октября 2019

используйте интерфейс для обновления RecyclerView после удаления чего-либо подобного

public interface RefreshRecyclerView {

    public void Refresh();
}

, затем в упражнении или фрагменте реализуйте интерфейс

Fragment implements RefreshRecyclerView

у вас будет метод переопределения, подобный этому

 @Override
    public void Refresh() {
       // set adapter again here 
    }

затем передайте интерфейс адаптеру вот так

RefreshRecyclerView refresh = (RefreshRecyclerView) this;

yourRecycler.setadapter(refresh);

после того, как пользователь нажал на адаптер, используйте

refresh. Refresh();
0 голосов
/ 13 октября 2019

Не надувайте разные держатели видов, потому что, когда у адаптера нет элементов, ни один из них не будет надуваться. Вместо этого можно обернуть RecyclerView вместе с «no data» Fragment в ViewFlipper, который затем можно переключить на Fragment, когда у адаптера RecyclerView нет элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...