我有一个布局的TextView谁的背景是选择器。并且TextView的文本被设置为从HTML跨越。然后我用LinkMovementMethod设置TextView。
现在,当我点击TextView时,单击事件不会发送到其父布局以触发选择器。
这个问题应该如何解决?
发布于 2010-12-12 12:27:32
我认为您需要使用这些方法中的一种,以便能够在事件发送到适当的组件之前拦截它:
Activity.dispatchTouchEvent(MotionEvent)
-这允许您的Activity在所有触摸事件被分派到窗口之前拦截它们。
ViewGroup.onInterceptTouchEvent(MotionEvent)
-这允许ViewGroup在事件被分派给子视图时监视事件。
ViewParent.requestDisallowInterceptTouchEvent(boolean)
-在父视图上调用此函数,以指示它不应使用onInterceptTouchEvent(MotionEvent)截取触摸事件。
更多信息here。
希望这能有所帮助。
发布于 2015-05-21 13:53:07
有时,只有这样才有帮助:
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);
发布于 2016-04-25 17:22:08
放
android:duplicateParentState="true"
在子视图中,视图获得其可绘制状态(聚焦、按下等)。而不是来自其自身。您可以为父对象设置onclick,它会在单击的子对象上调用
https://stackoverflow.com/questions/4415528
复制相似问题