Почему при перелистывании фрагментов есть небольшой лаг?
Есть 2 вкладки, которые должен листать пользователь. Их я делаю с помощью Viewpager2 и FragmentStateAdater. В каждом из фрагментов, находящемся во Viewpager2 есть Recyclerview, которые надо заполнять разными данными.
Я асинхронно получаю данные (сразу для двух фрагментов) из базы (локальной) в методе активности и передаю их в адаптер при инициализации.
У каждого элемента списка из второй вкладки есть по 4 текстовых поля, всего символов около ста, элементов списка пока около 20, но у пользователя не ограничений на их создание (к вопросу о производительности).
Почему возникает лаг при первом переключении вкладок?
P.s. когда брал данные для каждого фрагмента асинхронно в его жизненном цикле, то лаг был, но выглядел по-другому. Про Livedata ничего не знаю.
Кода и зрелищ нам.
В каком методе инициализируете?
Правильно, адаптер Хранит текущую вкладку и по одной слева/справа. Он создал вкладки и держит их в памяти, поэтому после первой инициализации лагов нет, если вы адаптеру скажете перерисовать вкладки каждый раз, будут лаги постоянно.
public void setData(ArrayList<Data1> data1)
{
this.data1= data1;
}
Создаю фрагменты в адаптере:
public Fragment createFragment(int position)
{
Fragment fragment = null;
if (position == 0)
{
Fragment1 f1= new Fragment1 ();
f1.setData(data1);
fragment = f1;
}
else if (position == 1)
{
Fragment2 f2 = new Fragment2 ();
f2.setData(data2);
fragment = f2;
}
return fragment;
}