Как получить высоту макета Android на Java? ⇐ Android
-
Гость
Как получить высоту макета Android на Java?
У меня есть фрагмент, и я хочу знать высоту макета во время выполнения, например, onStart(), onResume() или onViewStateRestored(). Я использую Layout.getHeight(), но он возвращает 0, если только я не выйду из приложения и не вернусь к нему снова. Я читал, что это не работает, потому что сначала необходимо отобразить макет, и что другой метод — использовать Layout.measure(), а затем Layout.getMeasuredHeight(). Это работает лучше в том смысле, что возвращает значение, но оно немного отличается. Например, я получаю 625 вместо ~2200
Думаю, я мог бы немного схитрить и получить высоту экрана, а затем вычесть панель действий и панель навигации, но это может не сработать, если окно не полноэкранное.
Есть идеи, как добиться правильной высоты макета?
У меня есть фрагмент, и я хочу знать высоту макета во время выполнения, например, onStart(), onResume() или onViewStateRestored(). Я использую Layout.getHeight(), но он возвращает 0, если только я не выйду из приложения и не вернусь к нему снова. Я читал, что это не работает, потому что сначала необходимо отобразить макет, и что другой метод — использовать Layout.measure(), а затем Layout.getMeasuredHeight(). Это работает лучше в том смысле, что возвращает значение, но оно немного отличается. Например, я получаю 625 вместо ~2200
Думаю, я мог бы немного схитрить и получить высоту экрана, а затем вычесть панель действий и панель навигации, но это может не сработать, если окно не полноэкранное.
Есть идеи, как добиться правильной высоты макета?
Мобильная версия