Получить высоту PopupWindow, которая была установлена ​​в WRAP_CONTENT - PullRequest
0 голосов
/ 11 сентября 2018

Вот мой код:

val inflater = LayoutInflater.from(this)
val popupView = inflater.inflate(R.layout.small_player, null)
val popupWindow = PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT/*, focusable*/)
popupWindow.elevation = 1.0f
popupWindow.showAtLocation(window.decorView, Gravity.CENTER, 0, window.decorView.height)
val height = popupWindow.contentView.height //returns 0

Я также пытался с popupView.height, но он возвращает 0 и с popupWindow.contentView.layoutParams.height, который возвратил -1

Так, как я могу получить эту высоту?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать View.getMeasuredHeight(), что дает вам фактическую высоту вида.

Значения, которые вы получаете сейчас, представляют собой числовые представления, используемые для MATCH_PARENT и WRAP_CONTENT

0 голосов
/ 11 сентября 2018

Это очень распространенная проблема, ваш взгляд не отображается на экране, когда вы пытаетесь получить его высоту

попробуйте это.

val inflater = LayoutInflater.from(this)
val popupView = inflater.inflate(R.layout.small_player, null)
val popupWindow = PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT/*, focusable*/)
popupWindow.elevation = 1.0f
popupWindow.showAtLocation(window.decorView, Gravity.CENTER, 0, window.decorView.height)

popupView.post{
    val height = popupWindow.contentView.height 
}

также проверьте это для более Просмотр getWidth () и getHeight () возвращает 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...