2014-11-11 2 views
0

мне нужно, чтобы получить длину LinearLayout или RelativeLayout программно в Android, как если у меня есть LinearLayout следующегоПолучить Высоту LinearLayout или RelativeLayout в Android программно

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

Мне нужно увеличить высоту макета, который расположенный в середине экрана, с помощью высоты экрана и увеличения или уменьшения его высоты, принимая вычисления на основе высоты экрана. Итак, есть способ вычисления высоты макета, высота которого задана как wrap_content. Я попытался получить Height from Layout Parameters, но он дает мне значение -1 или -2 не высоту в пикселях или пикселей плотности.

+0

Вы можете, но это не то, как я буду делать то, что вы пытаетесь сделать. У Android есть способы справиться с этим, если вы действительно не работаете. Линейные веса макета, относительные выравнивания/правила компоновки и т. Д. – zgc7009

+0

Я использую вид прокрутки, поэтому выравнивание и вес невозможно в просмотре прокрутки. Итак, если вы теперь ничего, что ho получить высоту макета, если его высота установлена ​​на wrap_content или match_parrent –

ответ

1

Попробуйте следующее:

myLayoutRef.post(new Runnable() { 
    int height = myLayoutRef.getHeight; 
}); 

Это Runnable работает после того, как макет был составлен и раскладывают на экране, так что получить высоту возвращает реальную высоту, а не 0

Смежные вопросы