シナリオがあります:
ViewA extends
ViewB、overrideonMeasure()
と callの両方setMeasuredDimension()
。ViewA は幅を に設定し10dp
、ViewB は幅を に設定します20dp
。super.getMeasuredWidth()
の最後に ViewB から呼び出して ViewAonMeasure()
の幅を取得すると、20dp
. その理由は、ViewA がそれ自体の測定を完了すると明らかでsetMeasuredDimension()
あり、ViewB は古い値を上書きします。
明らかな解決策は、関連するメソッドをオーバーライドすることです。私の質問は、カスタムでsetMeasuredDimension()
orをオーバーライドするのは良い習慣ですか。getMeasuredWidth()
getMeasuredHeight()
View