2

誰かが、xmlファイルからインフレートされたビューの正確なサイズをいつどのように測定できるかを説明できますか?

setContentViewを呼び出した直後に、ビューの高さと幅が使用できないことを理解しています。ビューのレイアウトが完了した後に呼び出されるコールバックが必要ですが、Activityコールバックには明らかなものが見つかりません。iOSプログラミングで「viewDidLoad」に相当するものを探しています。

また、実際に高さと幅をどのように読み取るかについても、多少わかりません。ViewにはgetHeight()関数とgetWidth()関数がありますが、getLayoutParams()。heightとgetLayoutParams()。widthを使用する例も見ました。これらの2つの値の違いは何ですか?どちらが必要ですか?

私の最終的な目標は、必要に応じて幅を変更することにより、ビューを固定アスペクト比にすることです(これは横向きのビューです)。XMLでそれを行う方法を見つけることができなかったので、実行時に高さと幅を読み取り、適切な幅を計算して設定できると考えました。誰かがより良い解決策を知っているなら、私はそれをいただければ幸いです。

ありがとう。

4

1 に答える 1

1

ViewTreeObserverクラスを使用できます。ここにいい答えがあります

ビューの寸法を取得するにはどうすればよいですか?

そして第二部のために

LayoutParams.heightは、ビューがレイアウトされた後の高さであり、WRAP_CONTENTなどの特定の定数に設定できます。getHeight()は実際の高さを返します(ビューがレイアウトされなくなるまで0を返します)。

于 2013-03-10T04:47:55.717 に答える