Какой слушатель сказал бы мне, что когда рисование вида закончено, чтобы я мог получить высоту вида? - PullRequest
0 голосов
/ 26 июня 2011

Я программно добавляю вид в макет, и после того, как я добавляю, мне нужно получить высоту нового вида, когда я спрашиваю высоту нового вида, просто получаю 0. Есть ли способ узнать, когда вид закончен рисунок и он может предоставить свою высоту?

Чтобы быть более понятным, я добавляю AdVhirlLayout в мой корневой макет с помощью myMainLayout.addView(adWhirlLayout, 0, adLayoutparams);, следующая строка adWhirlLayout.getHeight(); который возвращает 0. Я добавил OnHierarchyChangeListener к adWhirlLayout, и я пытаюсь получить высоту adWhirlLayout, но он все еще возвращает 0. Должен быть другой слушатель, который сообщит мне, если рисование adWhirlLayout закончилось.

adWhirlLayout.setOnHierarchyChangeListener(new OnHierarchyChangeListener() {

    @Override
    public void onChildViewRemoved(View parent, View child) {}

    @Override
    public void onChildViewAdded(View parent, View child) {
        adWhirlLayout.getHeight();
    }
});

1 Ответ

4 голосов
/ 26 июня 2011

Вы можете добавить OnLayoutChangeListener.

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

...