Android - WindowManager - показывать плавающее окно в абсолютной нижней части экрана?

Я пытаюсь показать плавающее окно под панелью навигации. Я могу сделать это, но если я отображаю окно в (0,0), оно отображается внизу слева, но над панелью навигации. Если я использую отрицательную координату y, она становится ниже - но я не знаю, насколько она должна быть ниже.

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

Также - если нет навигационной панели, мне все равно нужно показать окно внизу экрана.

Я могу придумать два пути решения моей проблемы, но не могу решить, как это сделать:

  1. Найти надежный способ получить высоту navbar
  2. Найдите флаг, который заставляет (0,0) нацеливаться на нижний левый пиксель

Вот мои LayoutParams флаги:

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  or WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
  or WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
  or WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS

0 ответов