Как определить, что Edge-to-Edge включен?

Как определить в моем фрагменте, что в активности включена сквозная функция с функцией

Есть идеи?

Можно ли получить значениеWindowCompat.setDecorFitsSystemWindows(window, false)?

1 ответ

Не существует общедоступного API для запроса этого состояния. Возможно, вам придется управлять этим состоянием в своем приложении, возможно, установив флаг при включении сквозного соединения, а затем вместо этого проверив этот флаг в своем фрагменте?

В качестве альтернативы вы можете попытаться вычесть это из флагов видимости системного пользовательского интерфейса:

      val isEdgeToEdgeEnabled = activity?.window?.decorView?.systemUiVisibility?.and(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0

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

Другие вопросы по тегам