2017-03-13 13 views
0

ViewGroupを拡張するカスタムコントロールを作成しました。最終的に、コントロールの実装は、Viewを追加せずにキャンバスのみを使っていくつかの図形を描画しています。ビューがない場合は、onLayoutをオーバーライドする必要があります

このシナリオでは、何らかの一般的な実装でもまだonLayoutをオーバーライドする必要がありますか、それとも空のままにする必要がありますか?あなたがViewGroupを拡張する場合

+1

子どもがいない場合は、なぜViewGroupを使用しますか?ただ単に拡張するほうが簡単かもしれません。表示 – RobCo

答えて

0

はまだそのシナリオで

を上書きすることがonLayoutなら[はい、あなたはそれが抽象メソッドだとして、それは何もしない場合でも、onLayout()を実装する必要があります。あるいは、ViewGroupの代わりにFrameLayoutを拡張します。

一般的な実装方法は?

レイアウトに子供がいない場合は、メソッド本体を空にしてください。

EDIT

私は一般的な実装のいくつかの並べ替えを持っているか、単にdocsを参照してください

空のままにするかどううん、私は意味:

無効onLayoutを()

このビューで子のそれぞれに のサイズと位置を割り当てる必要がある場合は、レイアウトから削除します。派生クラスと 子は、それぞれの 子のこのメソッドと呼び出しレイアウトをオーバーライドする必要があります。

使用しない場合は実装する必要はありません。この方法がabstractViewGroupにある理由は普遍的な実装ではありません。あなたは何もレイアウトする必要はありません。ただし抽象クラスを拡張するために (空)メソッドが必要です。

+0

ええ、私は一般的な実装をしなければならないか、それとも空のままにしておかなければならないのですか。 –

+0

いいえ編集済みの回答を参照してください。 –

関連する問題