2014-12-13 5 views
4

Я пытаюсь упорядочить и масштабировать некоторые элементы внутри таблицы, и мне нужно знать высоту таблицы, чтобы достичь всего этого. Проблема в том, что всякий раз, когда я пытаюсь получить ее высоту, она всегда возвращает 0, хотя таблица явно находится на экране и имеет определенный размер. Почему это?Table.getHeight() всегда возвращает 0, хотя он не должен

table_height = table.getHeight(); 
+2

Это зависит от того, когда вы просите высоту. Если вы вызываете это после добавления к нему элементов, но до его обновления он все равно будет равен нулю. Обычно размер таблицы основывается на том, что внутри нее, поэтому я не уверен, что это все равно сработает. Но вы можете вызвать 'table.invalidateHierarchy()', чтобы заставить его рассчитать свой текущий размер раньше. – Tenfour04

+0

Я проверил invalidateHierarchy в конструкторе после добавления всех элементов в таблицу; он все равно дал 0.0. Есть ли способ получить высоту в конструкторе? – gogonapel

+0

Я также должен сказать, что в таблице есть Стек внутри него, который содержит другие таблицы и кнопки изображения. – gogonapel

ответ

6

Предлагаю вам использовать метод pack() в таблице перед вызовом getHeight(). Это установит для вашей таблицы высоту и ширину.

table.pack(); 
table_height = table.getHeight(); 
Смежные вопросы