Страница 1 из 1

Работа с ViewPager и RecyclerView

Добавлено: 08 июл 2016, 12:42
plesser
Собственно проблема следующая, есть активность в которой объявлен ViewPager (FragmnetStatePagerAdapter) состоящий из трех фрагментов.
На первом (нулевом) фрагменте я использую RecyclerView которой наполняю данными. Он прекрасно работает ровно до тех пор пока я не перелистну до третьего (второго) фрагмента и затем снова вернусь назад. После этого я вижу... а нечего я не вижу. Пустой экран вместо данных, которые там должны быть.

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

Код: Выделить всё

        if (mAdapter == null) {
            Log.d(TAG, "updateUI - setAdapter");
            mAdapter = new CatalogAdapter(catalogs);
            mCatalogRecyclerView.setAdapter(mAdapter);
        } else {
            Log.d(TAG, "updateUI - notifyDataSetChanged " + mAdapter.getItemCount());
            mAdapter.notifyDataSetChanged();
        }
сам mAdapter у меня объявлен как свойство класса.

куда копать подскажите плс

PS
и вдогонку вопрос, на первом (нулевом) фрагменте у меня есть список с которым я работаю. Сами данные хранятся в синглете. Как при изменении данных и переходе на второй (первый) фрагмент принудительно вызвать из хранилища измененные данные. По сколько при переходе на второй(первой) фрагмент я вижу старые данные

Re: Работа с ViewPager и RecyclerView

Добавлено: 08 июл 2016, 14:50
парень
Как вариант, установите у пейджера лимит страниц в памяти 3...

setOffscreenPageLimit

Re: Работа с ViewPager и RecyclerView

Добавлено: 08 июл 2016, 15:23
plesser
помогло...
но вот со второй проблемой нет...

Re: Работа с ViewPager и RecyclerView

Добавлено: 08 июл 2016, 21:07
plesser
решение проблемы с вопросом по обновлению данных
перешел на custom adapter и вызовом из родительской активности во фрагменте notifyDataSetChanged()
и в итоге все заработало