Обновить содержимое вкладки просмотра пейджера - PullRequest
0 голосов
/ 02 сентября 2018

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

Чтобы отобразить содержимое как заголовок панели вкладок и коллекцию для конкретной вкладки, я объединил результат входящего ответа как

LinkedHashMap<String, List<Object>> map = new LinkedHashMap<>();

где, String будет заголовком вкладки, а список объектов - это коллекция, связанная с этой вкладкой.

В каждой строке коллекции есть кнопка удаления, после удаления я снова вызываю один и тот же метод для извлечения обновленного содержимого с сервера, из-за чего мой пейджер снова начинает с первой вкладки (обновляет всю карту и создает новую) .

Что делать, если я хочу обновить только определенную вкладку, не обновляя всю карту и не используя метод adapter.notifyDataSetChange ().

Я использую FragmentStatePagerAdapter для раздувания вкладок и фрагмента в пейджере.

1 Ответ

0 голосов
/ 02 сентября 2018

Я не верю, что пейджер просмотра может дать вам необходимую гибкость из коробки.

Обычно он предназначен для фиксированного набора страниц, и если нужно что-то изменить, предполагается, что все изменится, т.е. Вы изменяете всю коллекцию страниц, а не отдельные страницы.

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

Если вы открыты для альтернатив, рассмотрите возможность замены пейджера и вкладок представления на представление переработчика.

Адаптер представления Recycler поддерживает уведомления об изменениях для определенных индексов или диапазонов, а также поддерживает добавления / удаления, а также обновления.

Вы можете отобразить название коллекции и кнопку удаления в ячейке представления переработчика. При нажатии на ячейку запускается экран или фрагмент, содержащий то, что показывал бы фрагмент пейджера представления, когда пользователь добавил вкладку в ваш дизайн.

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