3 回答

TA貢獻1829條經驗 獲得超6個贊
我認為您需要使用這些方法之一,以便能夠在事件發送到適當的組件之前對其進行攔截:
Activity.dispatchTouchEvent(MotionEvent) -這允許您的活動在將所有觸摸事件分派到窗口之前攔截它們。
ViewGroup.onInterceptTouchEvent(MotionEvent) -這允許ViewGroup在將事件調度到子View時監視它們。
ViewParent.requestDisallowInterceptTouchEvent(boolean) -在父視圖上調用此方法,以指示它不應使用onInterceptTouchEvent(MotionEvent)攔截觸摸事件。

TA貢獻1853條經驗 獲得超18個贊
TextView使用android:clickable="false"和android:focusable="false"或v.setClickable(false)和聲明您不可點擊/不能聚焦的內容v.setFocusable(false)。點擊事件應立即發送到TextView的父級。
注意:
為了實現這一點,您必須在其直接框中添加click parent?;蛘咴O置 android:clickable="false"和android:focusable="false"其直接父傳聽眾進一步父。

TA貢獻1818條經驗 獲得超8個贊
有時只有這樣有幫助:
View child = parent.findViewById(R.id.btnMoreText);
child.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View parent = (View) v.getParent();
parent.performClick();
}
});
另一個變體并不總是有效:
child.setOnClickListener(null);
- 3 回答
- 0 關注
- 554 瀏覽
添加回答
舉報