21

LinearLayout子要素がたくさんあるがあります。ユーザーがこれらの子要素のいずれかに触れると、同じメソッドが呼び出されます。onClickListener各要素に同じものを実装しないonClickListenerために、親のLinearLayoutに対してのみを実装しました。

これで、親レイアウトの境界内の任意の場所をクリックすると、すべての子要素のリスナーを実装したのと同じように、目的のメソッドが呼び出されます。

Q:onClickListener親に実装するときはいつでも、そのすべての子要素がクリックイベントに反応することを信頼できますか?

Q:子要素に独自の要素がある場合はどうなりonClickListenerますか?衝突が発生するか、その要素をクリックすると、独自のクリックイベントのみが発生しますか?

4

1 に答える 1

30

最初の質問に2番目の質問で答えました。clickEventは、レイアウト階層の最下位の子要素に配信されます。この要素にonClick動作がない場合、イベントが処理されるまで、イベントは親に渡されます。

したがって、LinearLayoutをonClick動作の単一のブロックとして扱うことができます。レイアウト内に別のクリック可能な要素を作成する場合は、ユーザーが正しいアイテムを見逃す可能性を減らすのに十分な大きさにするようにしてください。

于 2011-11-15T10:45:33.780 に答える