Может ли Fragment быть виден в состоянии onStop

Ответ

Нет, Fragment не может быть виден в состоянии onStop().

Когда onStop() вызывается, это означает, что фрагмент больше не виден пользователю (например, активность перешла в фон или перекрыта другим полноэкранным фрагментом/активностью).

override fun onStop() {
    super.onStop()
    // UI больше не видна, но фрагмент еще не уничтожен
}

Если нужно выполнить действия при потере видимости, используйте onPause() (когда фрагмент частично закрыт) или onStop() (когда полностью не виден).

Ответ 18+ 🔞

А, ну это классика, ёпта! Смотри, тут всё просто, как божий день. Представь себе: твой фрагмент — это как мужик, который вышел на балкон покурить.

Пока он на балконе и виден соседям — это onResume(). Все видят, машут, кричат «Привет!».

А вот onStop() — это когда он, сука, зашёл с балкона обратно в квартиру и шторы задёрнул. Его уже нихуя не видно! Соседям хоть глаза выколи — они его не увидят. Он ещё жив, дышит, может телевизор смотреть, но для внешнего мира его, блядь, не существует.

Так и тут. Как только система вызывает onStop(), значит твой UI уже накрылся медным тазом с точки зрения видимости. Активность ушла в фон, или её перекрыло что-то полноэкранное. Фрагмент-то ещё в памяти болтается, не уничтожен, но пользователь его уже не лицезреет.

override fun onStop() {
    super.onStop()
    // UI больше не видна, но фрагмент еще не уничтожен
}

Вот смотри на код. Комментарий не врёт. В этот момент можно, например, тяжёлые анимации остановить или датчики какие отписаться, потому что показывать-то уже нечего.

А если тебе нужно среагировать на самое первое помутнение видимости — типа когда поверх фрагмента полупрозрачное окно вылезло — то это уже onPause(). Это как наш мужик на балконе не ушёл, но ему в лицо дым от шашлыков с нижнего этажа попёр. Виден ещё, но уже не так чётко.

Короче, запомни: onStop() = полная невидимость. Если в этом методе пишешь логику, которая зависит от того, что юзер что-то видит — ты, чувак, идёшь по охуенно тонкому льду. Потому что в этот момент он уже нихуя не видит.