ViewPager2 FragmentStateAdapter не обновляется при добавлении/удалении фрагментаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 ViewPager2 FragmentStateAdapter не обновляется при добавлении/удалении фрагмента

Сообщение Anonymous »

Я пытаюсь добавить или удалить фрагмент из FragmentStateAdapter, но это не работает.
Это мой раздел инициализации:

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

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();
Мой классsectionsPagerAdapter:

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

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();
}

}
Когда я вызываю метод addFragment, он выдает ошибку, сообщающую, что фрагмент уже добавлен. А для removeFragment написано IndexOutOfBoundException.
Для добавления фрагмента я делаю следующее:

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

mSectionsPagerAdapter.addFragment(getString(R.string.fav_tab), Favoritos.newInstance(fecha));
Я пытаюсь динамически добавлять фрагменты из пейджера просмотра

Подробнее здесь: https://stackoverflow.com/questions/785 ... g-fragment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ViewPager2 FragmentStateAdapter не обновляется при добавлении/удалении фрагмента
    Anonymous » » в форуме Android
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • ViewPager2 FragmentStateAdapter не обновляется при добавлении/удалении фрагмента
    Anonymous » » в форуме JAVA
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • ViewPager2 FragmentStateAdapter не обновляется при добавлении/удалении фрагмента
    Anonymous » » в форуме Android
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • NotifyDataSetChanged не работает в FragmentStateAdapter с Viewpager2
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Фрагмент больше не существует для ключа FragmentStateAdapter с Viewpager2.
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»