一个LinearLayout里面有一个ImageView和一个TextView,想在点击这个Layout的时候执行一个事件,于是给LinearLayout设置了onClickListener,但发现只有在点击ImageView之外部分、LinearLayout之内的部分时,才会响应点击操作,是不是ImageView把LinearLayout盖住的部分就不响应父控件LinearLayout的点击事件了呢。
如何才能让点击ImageView的时候也响应这个LinearLayout的点击事件呢,只能再给ImageView绑定相同的监听器吗?
を追加しますLinearLayout
にandroid:descendantFocusability=”blocksDescendants”
ご質問のとおり、imagview の onclick メソッドで Linearlayout.performclick() を呼び出すだけです。
は、
その後、LinearLayout
などのMyLinearLayout
を継承し、onInterceptTouchEvent
をオーバーライドします。戻り値は依然としてfalse
であり、イベントが切り捨てられないことを示します (切り捨てとは、イベントが引き続き のViewGourp
メソッド)onTouchEvent
でやりたいことを行うことができます。この
参照:onInterceptTouchEvent
のどこをクリックしても、このメソッドが最初に呼び出されます。LinearLayout
https://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)