したがって、2 つのカスタム ビューがあります。カスタムビューのピクセル寸法を知る必要があり、次の方法で取得しました:
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld)
{
width_dimension = xNew; // << this is the field i need to share
super.onSizeChanged(xNew, yNew, xOld, yOld);
}
フィールド「width_dimension」を渡す必要がある別のカスタムビューがあります。これを行う適切な方法は何ですか?アクティビティの onCreate() メソッドで情報を渡そうとしましたが、カスタム ビューの onSizeChanged() の前に呼び出されるため、フィールドは未定義です。私も onSizeChanged() メソッド (上記) を渡そうとしましたが、私の OTHER カスタム ビューはまだ xml レイアウトによってインスタンス化されていません (null ポインター例外がスローされました)。
onSizeChanged() メソッドをオーバーライドすることは、ビューの幅を決定する適切な方法ですか (xml で wrap_content に設定されています)? また、この情報を別のカスタム ビューと共有するにはどうすればよいですか?
この質問が明確でない場合は申し訳ありません。説明するのは難しく、私が直面している問題は、すべてのカスタム ビューがいつインスタンス化されてレイアウトされたのかを知る必要があるため、それらの間でディメンション情報 (実行時に決定される) を交換できることです。