0

問題:

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

そのため、既存のボタンをいくつか押すと、追加したビューが表示されます。(ちなみに、ontouchlistener のあるボタンのみがそれを行います。listener のないボタンは、新しいビューを表示できません)。

メソッドにビューを追加onSizeChangeしてすぐに表示する方法は?

追加: メソッドforceLayout()requestLayout()は機能しません。

4

2 に答える 2

0

私は LinearLayout を自分で拡張していませんが、クラスを少し読んで、 onLayout() をオーバーライドして子ビューを追加する必要があると思います。ドキュメントをチェックして、それが役立つかどうかを確認してください

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

于 2012-04-19T18:24:30.743 に答える
0

解決策は、単純なブール値フラグを作成し、それを「true」に設定して onSizeChanged を呼び出し、「invalidate」を呼び出すことでした。

メソッド「onDraw」で、フラグが true かどうかをチェックし、true の場合は requestLayout を呼び出します。次に、フラグを false に設定します。

于 2012-04-20T11:37:16.683 に答える