![](/img/trans.png)
[英]Android - Consume onTouch of parent view having multiple Clickable children
[英]Children not clickable outside parent view
我有一個類似的問題,並通過設置app:elevation="XXdp"
給孩子修復它。
您不能這樣做的原因是ViewGroup#dispatchTouchEvent(MotionEvent ev)
的默認實現會遍歷子代(而不是孫代)以查找作為目標的子代(位於單擊事件點的底部)並且可以接收觸摸事件。 如果你觸摸它在Parent
范圍之外的部分,它是Grandparent
的唯一孩子,它什么也找不到。 如果它沒有找到Parent
, Parent
將永遠無法查找其子項( Children 1 and Children 2
)並最終將事件發送給Child 2
。
因此,您要么增加Parent
的大小(作為可接受的答案),這是最簡單的方法,要么您必須覆蓋Grandparent
的ViewGroup#dispatchTouchEvent(MotionEvent ev)
方法以進行更復雜的查找,例如查找孫子也是。 該方法已經相當復雜,如果有人找到實現,請分享,因為我沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.