ViewGroup
を拡張するカスタムコントロールを作成しました。最終的に、コントロールの実装は、View
を追加せずにキャンバスのみを使っていくつかの図形を描画しています。ビューがない場合は、onLayoutをオーバーライドする必要があります
このシナリオでは、何らかの一般的な実装でもまだonLayout
をオーバーライドする必要がありますか、それとも空のままにする必要がありますか?あなたがViewGroup
を拡張する場合
ViewGroup
を拡張するカスタムコントロールを作成しました。最終的に、コントロールの実装は、View
を追加せずにキャンバスのみを使っていくつかの図形を描画しています。ビューがない場合は、onLayoutをオーバーライドする必要があります
このシナリオでは、何らかの一般的な実装でもまだonLayout
をオーバーライドする必要がありますか、それとも空のままにする必要がありますか?あなたがViewGroup
を拡張する場合
はまだそのシナリオで
を上書きすることがonLayoutなら[はい、あなたはそれが抽象メソッドだとして、それは何もしない場合でも、onLayout()
を実装する必要があります。あるいは、ViewGroup
の代わりにFrameLayout
を拡張します。
一般的な実装方法は?
レイアウトに子供がいない場合は、メソッド本体を空にしてください。
EDIT
私は一般的な実装のいくつかの並べ替えを持っているか、単にdocsを参照してください
空のままにするかどううん、私は意味:
無効onLayoutを()
このビューで子のそれぞれに のサイズと位置を割り当てる必要がある場合は、レイアウトから削除します。派生クラスと 子は、それぞれの 子のこのメソッドと呼び出しレイアウトをオーバーライドする必要があります。
使用しない場合は実装する必要はありません。この方法がabstract
のViewGroup
にある理由は普遍的な実装ではありません。あなたは何もレイアウトする必要はありません。ただし抽象クラスを拡張するために (空)メソッドが必要です。
ええ、私は一般的な実装をしなければならないか、それとも空のままにしておかなければならないのですか。 –
いいえ編集済みの回答を参照してください。 –
子どもがいない場合は、なぜViewGroupを使用しますか?ただ単に拡張するほうが簡単かもしれません。表示 – RobCo