0

シナリオがあります:

ViewA extendsViewB、overrideonMeasure()と callの両方setMeasuredDimension()。ViewA は幅を に設定し10dp、ViewB は幅を に設定します20dpsuper.getMeasuredWidth()の最後に ViewB から呼び出して ViewAonMeasure()の幅を取得すると、20dp. その理由は、ViewA がそれ自体の測定を完了すると明らかでsetMeasuredDimension()あり、ViewB は古い値を上書きします。

明らかな解決策は、関連するメソッドをオーバーライドすることです。私の質問は、カスタムでsetMeasuredDimension()orをオーバーライドするのは良い習慣ですか。getMeasuredWidth()getMeasuredHeight()View

4

1 に答える 1