0

У меня есть ViewPager, который имеет 4-6 категорий продуктов. Когда пользователь нажимает на продукт, он попадает в новый фрагмент. Когда они ударяют назад, их отправляют обратно в ViewPager, и все приходится перезагружать, а все разбиение на страницы потеряно. Я могу сэкономить на перезагрузке, кэшируя результаты, но в идеале, если пользователь имеет 26 результатов, они должны быть возвращены в их точную позицию прокрутки. Тем не менее, 26 результатов могут быть на 2 страницы с разбивкой по страницам (мы используем бесконечную прокрутку). Я удивлен, что у Android нет встроенного механизма для обработки этого обычного сценария. Я что-то упускаю?Android - ViewPager возобновление на задней кнопке

Код:

Это, как я добавляю фрагмент:

private void addFragment(AppFragment fragment) 
    { 
     getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).addToBackStack(fragment.getTitle()).commit(); 

    } 

Я не имею ничего onResume, единственные 2 метода я использую OnCreateView и OnActivityCreated

+0

Можете ли вы показать некоторые (соответствующие части) кода? Поскольку «ViewPager» сохраняет и восстанавливает последнюю известную позицию при ее сохранении. Вы можете перезагрузить адаптер в 'onResume()'? – dhke

+0

@ dhke Нет, я только что подтвердил это. У меня есть сетевой вызов onActivityCreated, но кроме этого, вот и все. – StackOverflowed

ответ

1

Грязные и Простейшая solutuon создает новую активность внутри фрагмента внутри. Покажите свои данные там. Всякий раз, когда пользователь нажимает кнопку «Назад», он увидит предыдущую активность.

Но если система удаляет ваши данные из ram (если пользователь проводит много времени в других действиях или перемещается дальше), вам нужно восстановить состояния. В основном, восстановите свои данные и создайте новый адаптер пейджера. Затем вам нужно установить его для просмотра пейджера и вызвать setCurrentPage (позиция).

Успехи там :)

0

Вы должны установить закадровый предел собственности в ViewPager.
ViewPager pager = (ViewPager) findViewById(R.id.viewPager); pager.setOffscreenPageLimit(2);

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

+0

Извините, это не касается описанной проблемы. – StackOverflowed

Смежные вопросы