2012-04-19 5 views
0

Проблема:Android обновление дерева просмотров

У меня есть класс, унаследованный от LinearLayout. Этот класс создает некоторые кнопки в конструкторе и помещает их в себя, используя addChild(). Я перегрузил метод onSizeCHanged, и я хочу добавить некоторые дочерние элементы в этот метод. Но изменения не действуют, пока одна из других кнопок не нажата.

Итак, мне нужно нажать некоторые из существующих кнопок и после этого появятся новые представления. (кстати, только кнопки с ontouchlistener делают это. Кнопки без слушателя не могут создавать новые виды).

Как добавить виды в onSizeChange Способ их создания появился сразу?

ADDITION: Методы forceLayout() и requestLayout() не могут работать.

+0

Я сделал это ... – user1038085

+0

Вы переопределяете onLayout()? – Shubhayu

+0

нет, я не переопределяю onLayout – user1038085

ответ

0

Я не расширил LinearLayout самостоятельно, но немного почитал в классе, и я думаю, вам нужно переопределить onLayout() и добавить в него свои дочерние представления. Проверьте документацию и посмотреть, если это помогает

http://developer.android.com/reference/android/widget/LinearLayout.html#onLayout(boolean,%20int,%20int,%20int,%20int)

0

Решение было: сделать простой логический флаг, установив его «истинный» им onSizeChanged и называя «недействительными».

В методе «onDraw» проверяется, является ли флаг истинным, и если это так, вызывая requestLayout. Затем установите флаг в значение false.

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