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。或者设置 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 关注
- 505 浏览
添加回答
举报