5 つの LinearLayouts があります。書きやすく理解しやすいように、それらをビュー A ~ E と呼びます。
ビュー A は、ビュー B、C、D、および E の親です。
ビュー A の layout_weight を 8.0f に設定し、ビュー B ~ E の重みをそれぞれ 1.0f、3.0f、1.0f、3.0f に設定しました。
これは親ビューの空きスペースを管理するためであることは理解していますが、ビューとサブビューのサイズを変更して、空きスペースだけで競合するのではなく、画面のパーセンテージを所有することを望んでいました。
ただし、これはすべてプログラムで行われるため、LinearLayouts の高さをそのgetHeight()
親 (ビュー A) のメソッド/アクセサーの係数に設定する必要がありますか? もしそうなら、ビューがまだ親に追加されていない場合、親の高さを取得するにはどうすればよいですか? MATCH_PARENT で高さを設定しますか?
このメソッドは、、および最初のgetHeight()
に対して 0 を返すため、答えを探し続けなければなりませんでした。とが見つかりました。これにより、 が設定されたときに通知されます。ただし、描画が発生する前に高さを取得していただければ幸いです。それは不可能ですか?onCreate
onStart
onResume
ViewTreeObserver
OnGlobalLayoutListener
Layout