Не могу получить высоту виджетов - PullRequest
1 голос
/ 24 декабря 2009

Я сталкиваюсь с проблемой при получении высоты / ширины TextView.

Мой код:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TextView tv1 = (TextView)findViewById(R.id.textview1);
    int h1 = tv1.getHeight();
    TextView tv2 = (TextView)findViewById(R.id.textview2);
    int h2 = tv2.getHeight();
}

h1 - высота textview1 h2 - высота textview2

Эти h1 и h2 всегда равны 0.

Что здесь не так?

Пожалуйста, совет.

Спасибо.

Ответы [ 2 ]

8 голосов
/ 24 декабря 2009

View.getWidth()/View.getHeight() не даст вам значимого ответа, пока представление не будет измерено. Прочитайте о том, как Android рисует представления здесь.
Посмотрите эту тему , чтобы получить представление о том, когда будут доступны измеренные размеры.

0 голосов
/ 27 июня 2017

tv1.getHeight () вернет 0 (а также tv2.getWidth ()), если он еще не нарисован.

Решение было бы получить высоту после размещения вашего вида:

tv1.post(new Runnable(){
    public void run(){
         int height = tv1.getHeight();
    }
});
tv2.post(new Runnable(){
    public void run(){
         int height = tv2.getHeight();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...