Intereting Posts
Android Studio Gradle не может найти «com.android.support:design:22.2.0» (библиотека поддержки дизайна Android) Android HCE: существуют ли правила для AID? Display.getRefreshRate () дает мне разные значения в разных устройствах Как включить или подделать мини-вариант из руководства по материальному дизайну для android.support.v4.widget.DrawerLayout? В чем разница между активностью и потоком в приложении для Android? Почему мой ScrollView слишком широк, только когда ему не нужно прокручивать? Кнопка Eclipse Run не работает, когда выбран XML-файл Android Текстовое изображение показывает частичный текст Как получить и разобрать JSON-объект с помощью Volley Невозможно разрешить символ Manifest.permission.READ_PHONE_STATE Почему Butterknife не может найти ViewHolder внутри анонимного класса? SharedPreferences Длительное значение Как перехватывать данные POST в веб-обозревателе Android Лучшие практики разработки более крупных приложений на Android Clojure на Android

Android-фрагменты скрывают шоу OnHide / OnShow?

Я спрашиваю об этом, потому что я немного любопытен.

1) Большинство демонстраций google обнаруживают фрагменты по его идентификатору, если фрагмент уже создан в xml.

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

2) Есть также примеры, предоставляемые google, где вы можете создать фрагмент с помощью конструктора и раздуть его. Это действует странно, так как getActivity () возвращает null, если он вызван в этом фрагменте.

Итак, если я возьму первый подход, я должен скрыть и показать фрагменты. Итак, почему google не предоставляет перехваты для фрагментов, таких как onHide или onShow, чтобы мы могли корректно обрабатывать вещи, если выполняем очистку себя с помощью функций, которые мы реализуем и вызываем явно.

Если вы хотите подключить op on onHide / onShow просто переопределите

 public void onHiddenChanged(boolean hidden) { } 

В вашем фрагменте.

С помощью Overrinde setUserVisibleHint вы можете легко отслеживать его.

  @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(isVisibleToUser){ //When fragment is visible } Log.i("my_fragment","setUserVisibleHint: "+isVisibleToUser); } 

Я переопределяю функцию ниже, чтобы определить, показан или нет фрагмент.

@Override public void setMenuVisibility (окончательный логический вид)