搜尋

首頁  >  問答  >  主體

Android中LinearLayout的点击事件如何包含内部的控件?

一个LinearLayout里面有一个ImageView和一个TextView,想在点击这个Layout的时候执行一个事件,于是给LinearLayout设置了onClickListener,但发现只有在点击ImageView之外部分、LinearLayout之内的部分时,才会响应点击操作,是不是ImageView把LinearLayout盖住的部分就不响应父控件LinearLayout的点击事件了呢。

如何才能让点击ImageView的时候也响应这个LinearLayout的点击事件呢,只能再给ImageView绑定相同的监听器吗?

天蓬老师天蓬老师2771 天前699

全部回覆(3)我來回復

  • 怪我咯

    怪我咯2017-04-17 17:22:20

    LinearLayout中添加android:descendantFocusability=”blocksDescendants”

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 17:22:20

    你這問的,在imagview的onclick方法裡呼叫linearlayout.performclick()就好了。

    回覆
    0
  • 阿神

    阿神2017-04-17 17:22:20

    繼承LinearLayout,例如MyLinearLayout,然後覆寫onInterceptTouchEvent,傳回值依然用false,表示事件不會被截斷(截斷就是說事件仍會傳給ViewGourponTouchEvent方法)LinearLayout,比如MyLinearLayout,然后覆写onInterceptTouchEvent,返回值依然用false,表示事件不会被截断(截断就是说事件依然会传给ViewGourponTouchEvent方法)

    然后你就可以在onInterceptTouchEvent干你想干的事情,不管你点这个LinearLayout

    然後你就可以在onInterceptTouchEvent幹你想乾的事情,不管你點這個LinearLayout裡面的哪個地方,都會先呼叫這個方法。


    參考:

    https://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)#🎜🎜#

    回覆
    0
  • 取消回覆