Intereting Posts

Фрагмент onHiddenChanged не называется

Недавно я добавил фрагменты в свои приложения. Для нового приложения мне нужно будет получить уведомление, как только будет показан мой фрагмент. Поэтому я могу выполнить некоторые вычисления, как только мой фрагмент будет показан снова.

Мой фрагмент используется с TabIndicator, и это только один FragmentClass, который используется несколько раз.

Вот нормальный класс переопределения:

@Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); } 

Solutions Collecting From Web of "Фрагмент onHiddenChanged не называется"

Все еще ищете ответ? OnHiddenChanged не вызывается при первом показе фрагмента. Только когда он меняет состояние.

Из документации:

Вызывается, когда спрятанное состояние (как возвращено isHidden ()) фрагмента изменилось. Фрагменты начинаются не спрятано; Это будет вызываться всякий раз, когда из него изменяется состояние.

У меня была такая же проблема.

Я использовал стандартную практическую работу с фрагментом ( построение гибкого пользовательского интерфейса ). У меня есть два фрагмента (ListItemsFragment и InfoItemFragment). При использовании обычного размера экрана я заменяю ListItemsFragment на InfoItemFragment, и метод onHiddenChanged не вызывает автоматический.

 FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction(); mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem"); mFragmentTransaction.addToBackStack(null); mFragmentTransaction.commit(); 

Я думаю, что мы должны вызвать метод hide FragmentTransaction. Например:

  ListItemsFragment mListItemsFragment; FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction(); mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem"); if (mListItemsFragment != null) { mFragmentTransaction.hide(mListItemsFragment); } mFragmentTransaction.addToBackStack(null); mFragmentTransaction.commit(); 

И теперь метод onHiddenChanged работает нормально. Когда пользователь нажимает кнопку кнопки mListItemsFragment, снова показывайте и метод onHiddenChanged называется автоматическим.

В документации сказано: это будет вызываться всякий раз, когда фрагмент меняет состояние из этого

Я думаю, что мы должны изменить значение вручную, тогда будет вызван метод.