2012-04-19 9 views
0

問題:ビューのAndroid更新ツリー

私はLinearLayoutから継承したクラスを持っています。 このクラスは、コンストラクタにいくつかのボタンを作成し、addChild()を使用してそれ自身に配置します。 メソッドonSizeCHangedをオーバーロードしました。このメソッドでいくつかの子を追加したいと思います。 しかし、他のボタンの1つがクリックされるまで、変更は効果がありません。

既存のボタンのいくつかを押してから、追加したビューが表示されます。 (ちなみに、ontouchlistenerのあるボタンだけで、リスナーのないボタンは新しいビューを表示できません)。

どのように表示するにはonSizeChangeの方法を追加するにはすぐに登場しましたか?

追加: 方法forceLayout()およびrequestLayout()は機能しません。

+0

私はそれをやった... – user1038085

+0

あなたはonLayout()を上書きしていますか? – Shubhayu

+0

いいえ、私はonLayoutをオーバーライドしていません – user1038085

答えて

0

私はLinearLayoutを自分で拡張していませんが、クラスを少し読んで、onLayout()をオーバーライドして子ビューを追加する必要があると思います。イムonSizeChanged「真」に設定すると、「無効」を呼び出す、単純なブールフラグを作る:ドキュメントをチェックし、それが

http://developer.android.com/reference/android/widget/LinearLayout.html#onLayout(boolean,%20int,%20int,%20int,%20intを助けている場合解決策をして

0

)を参照してください。

"onDraw"メソッドで、flagがtrueかどうかをチェックし、そうである場合はrequestLayoutを呼び出します。フラグをfalseに設定します。

関連する問題