Это мой раздел инициализации:
Код: Выделить всё
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), getLifecycle());
mViewPager = findViewById(R.id.viewpager);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setOffscreenPageLimit(mSectionsPagerAdapter.getItemCount()-1);
new TabLayoutMediator(tabLayout, mViewPager,
(tab, position) -> tab.setText(categorias.get(position))
).attach();
Код: Выделить всё
private class SectionsPagerAdapter extends FragmentStateAdapter {
private final List mFragments = new ArrayList();
void addFragment(String title, Fragment fragment) {
categorias.add(0, title);
mFragments.add(0, fragment);
new TabLayoutMediator(tabLayout, mViewPager,
(tab, position) -> tab.setText(categorias.get(position))
).attach();
notifyItemInserted(0);
}
void removeFragment() {
tabLayout.removeTabAt(0);
categorias.remove(0);
mFragments.remove(0);
notifyItemRemoved(0);
}
public
SectionsPagerAdapter(FragmentManager fm, Lifecycle lifecycle) {
super(fm, lifecycle);
categorias = new ArrayList();
if(!prefsPor.getAll().isEmpty()) {
categorias.add(getString(R.string.fav_tab));
mFragments.add(Favoritos.newInstance(fecha));
favsCount = prefsPor.getAll().size();
}
categorias.add(getString(R.string.first_tab));
mFragments.add(General.newInstance(fecha));
categorias.add(getString(R.string.second_tab));
mFragments.add(Deportes.newInstance(fecha));
categorias.add(getString(R.string.third_tab));
mFragments.add(Economia.newInstance(fecha));
categorias.add(getString(R.string.fourth_tab));
mFragments.add(Locales.newInstance(fecha));
categorias.add(getString(R.string.fifth_tab));
mFragments.add(Internacional.newInstance(fecha));
}
@NonNull
@Override
public Fragment createFragment(int position) {
return mFragments.get(position);
}
@Override
public int getItemCount() {
return categorias.size();
}
}
Для добавления фрагмента я делаю следующее:
Код: Выделить всё
mSectionsPagerAdapter.addFragment(getString(R.string.fav_tab), Favoritos.newInstance(fecha));
Подробнее здесь: https://stackoverflow.com/questions/785 ... g-fragment