Intereting Posts
Запуск приложения с мгновенным запуском Android-студии очень медленный Можно ли вручную уничтожить SurfaceView? Почему кнопка вверх присутствует без setDisplayHomeAsUpEnabled ()? 'Android.support.test.espresso не существует', когда я хочу использовать его для отдельного теста apk Означает ли покупкаToken то же самое, когда подписка возобновляется с помощью Android In-App Billing V3? OnItemClick дает индекс / позицию элемента на видимой странице … не фактический индекс элемента в списке ..issue при включении setTextFilterEnabled Как получить идентификатор из базы данных при щелчке элемента списка в android Оптическое распознавание символов Android с OpenCV Как перемещаться с веб-страницы на локальную страницу в приложении для мобильного телефона? Android Studio: java.io.IOException: существующее соединение было принудительно закрыто удаленным хостом Читайте в JPG как RGB888 на Android Программный доступ к темам / стилям / attrs в android ./fastboot: нет такого файла или каталога С Android, как установить максимальный срок для запроса Cloud Endpoint? Ошибка подключения к голосовому распознаванию

Фрагмент 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 называется автоматическим.

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

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