首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Android上,如何将视图的onClick事件传递给父视图?

在Android上,如何将视图的onClick事件传递给父视图?
EN

Stack Overflow用户
提问于 2010-12-11 14:29:40
回答 5查看 116.4K关注 0票数 115

我有一个布局的TextView谁的背景是选择器。并且TextView的文本被设置为从HTML跨越。然后我用LinkMovementMethod设置TextView。

现在,当我点击TextView时,单击事件不会发送到其父布局以触发选择器。

这个问题应该如何解决?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-12-12 12:27:32

我认为您需要使用这些方法中的一种,以便能够在事件发送到适当的组件之前拦截它:

Activity.dispatchTouchEvent(MotionEvent) -这允许您的Activity在所有触摸事件被分派到窗口之前拦截它们。

ViewGroup.onInterceptTouchEvent(MotionEvent) -这允许ViewGroup在事件被分派给子视图时监视事件。

ViewParent.requestDisallowInterceptTouchEvent(boolean) -在父视图上调用此函数,以指示它不应使用onInterceptTouchEvent(MotionEvent)截取触摸事件。

更多信息here

希望这能有所帮助。

票数 52
EN

Stack Overflow用户

发布于 2015-05-21 13:53:07

有时,只有这样才有帮助:

代码语言:javascript
复制
View child = parent.findViewById(R.id.btnMoreText);
    child.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            View parent = (View) v.getParent();
            parent.performClick();
        }
    });

另一种变体并不总是有效的:

代码语言:javascript
复制
child.setOnClickListener(null);
票数 19
EN

Stack Overflow用户

发布于 2016-04-25 17:22:08

代码语言:javascript
复制
android:duplicateParentState="true"

在子视图中,视图获得其可绘制状态(聚焦、按下等)。而不是来自其自身。您可以为父对象设置onclick,它会在单击的子对象上调用

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4415528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档