Подтвердить что ты не робот

Является ли Fragment.setUserVisibleHint(), вызываемым системой Android?

Метод Fragment.setUserVisibleHint(), вызываемый Системой, или
мы называем это вручную?

4b9b3361

Ответ 1

Глядя на источники , похоже, что эта система в основном предназначена для фрагментов, помещенных в пейджер. Вы (или, например, реализация пэга фрагмента) должны установить его как подсказку ( "Подсказка, предоставляемая приложением" в качестве комментария в источнике Fragment), чтобы он мог, например, отложить загрузку (инициализация), если не видно и приоритет загрузки видимых фрагментов (типичная потребность при использовании в пейджере, снова).

Обратите внимание, что FragmentPagerAdapter использует это и правильно вызывает setUserVisibleHint() на своих фрагментах, поэтому я думаю, вы см. некоторых людей, консультирующих, например, переопределить setUserVisibleHint(), чтобы узнать, когда фрагмент становится видимым для пользователя или нет (и это, таким образом, будет работать только тогда, когда фрагмент находится внутри FragmentPagerAdapter, а не только при простом расположении обычного макета активности).

Итак, чтобы четко ответить на вопрос: вы вызываете его вручную, а FragmentPagerAdapter также вызывает его вручную.

Ответ 2

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

Настройте подсказку системе о том, является ли этот пользовательский интерфейс фрагмента видимым для пользователя. Эта подсказка по умолчанию имеет значение true и сохраняется в состоянии сохранения и восстановления экземпляра экземпляра экземпляра.

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

Параметры isVisibleToUser true, если этот фрагмент UI в настоящее время отображается пользователю (по умолчанию), false, если это не так.

Похоже, что он по умолчанию имеет значение True, и вы можете установить его на False, если хотите.

Документация

Ответ 3

Не для Android меньше, чем версия 15 и Android Support Library меньше, чем версия 11.