Как узнать высоту элементов адаптера в пикселях до адаптации элементов - PullRequest
0 голосов
/ 05 августа 2020

Попытка получить высоту элемента списка адаптера в пикселях до адаптации каких-либо элементов

var item =
    LayoutInflater.from(context).inflate(R.layout.adapter_item, null)

item.post {
    System.out.println("height=$item.height")
}

Выше ^^^ Я увеличиваю элемент во фрагменте, который ссылается и использует адаптер. Затем я печатаю высоту как рабочую, поэтому я знаю, что высота не вызывается слишком рано и будет отличаться от нуля.

Проблема выполняется, не выполняется, и высота элемента не печатается.

Что это моя проблема? Спасибо

соответствующий пост View getWidth () и getHeight () возвращает 0

edit

Я тоже пробовал это , но нет оператора печати

    item.viewTreeObserver.addOnGlobalLayoutListener {
        //At this point the layout is complete and the
        //dimensions of myView and any child views are known.
        System.out.println("height=$item.height")
    }

Я думаю, что проблема связана с раздуванием макета, который не входит в видимую иерархию?

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Можете попробовать

var item = LayoutInflater.from(parent.context).inflate(R.layout.list_item, parent, false) as ConstraintLayout
var params = item.layoutParams
Log.e("height->",params.height.toString())
0 голосов
/ 05 августа 2020

Похоже, мне просто нужно определить высоту по адаптеру. Я вижу распечатку.

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
    
    var item = LayoutInflater.from(parent.context)
        .inflate(R.layout.list_item, parent, false) as ConstraintLayout

    item.post {
        System.out.println("height=${item.height}")
    }

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