Невозможно изменить тег фрагмента

У меня есть несколько страниц (фрагментов) в viewPager.
Когда я попытался удалить (например) первый, например:

mFragmentManager.beginTransaction().remove(Page1).commit(); 

В нем говорится, что

 IllegalStateException has occured. 

Я не знаю, почему. Может ли кто-нибудь помочь мне? Благодарю.

Исключение:

 java.lang.IllegalStateException: Can't change tag of fragment Page2{40586418 #2 id=0x7f080006 android:switcher:2131230726:2}: was android:switcher:2131230726:2 now android:switcher:2131230726:1 

Это старый вопрос, но в любом случае здесь есть какая-то информация в надежде, что это поможет кому-то.

ViewPager работает вместе с адаптером, который установлен на него через ViewPager # setAdapter (). В случае с этим вопросом кажется, что FragmentPagerAdapter используется как адаптер (так как этот адаптер называет фрагменты android: switcher: [x]: [y], как появляется в исключении).

Одним из важных замечаний относительно FragmentPagerAdapter является следующее:

FragmentPagerAdapter владеет выделенными фрагментами, которые используются в ViewPager.

Пользователь ViewPager с соединением ViewPagerAdapter должен определить подкласс FragmentPagerAdapter, реализующий метод getItem (), прототипированный следующим образом:

 public abstract Fragment getItem(int position); 

Эта функция создает различные фрагменты, используемые ViewPager как страницы. Реализация этого метода должна рассматриваться как служба, предоставляемая подклассом для FragmentPagerAdapter () для выделения фрагментов.

Другими словами, хотя подкласс выделяет фрагменты, он не является их владельцем.

Поскольку, как сказано выше, владельцем фрагментов является FragmentPagerAdapter, все операции с фрагментами (в смысле FragmentManager / FragmentTransaction) должны выполняться только с помощью FragmentPagerAdapter.

Попытка выполнить операции над этими фрагментами может помешать нормальной работе ViewPager и вызвать неопределенное поведение.

В случае этого вопроса есть попытка удалить один из фрагментов, используемых ViewPager вне FragmentPagerAdapter, который, как объясняется, является плохим и, вероятно, вызвал последовательность, завершившуюся этим исключением.

Когда необходимо динамически удалять / добавлять / заменять страницы в ViewPager, чтобы сделать это, чтобы вызвать notifyDataSetChanged () на адаптере.

Удачи!