首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将onClick事件从父母传递给孩子?

如何将onClick事件从父母传递给孩子?
EN

Stack Overflow用户
提问于 2020-11-24 09:19:44
回答 2查看 154关注 0票数 0

我有一个卡视图,其中包含一个RelativeLayout作为卡片的标题。

当我在平板电脑上时,整个卡片应该是可点击的,而当我在手机上时,只有头应该是可点击的。

我遇到的问题是,当我在平板电脑上时,头没有看到它的父程序的onClick事件。我做错什么了吗?

代码语言:javascript
复制
if (isTablet(getContext())) {
        cardView.setOnClickListener((View v) -> {
            //here the cardHeader doesn't have the clickevent of it's parent
            // do something
        });
} else if (isPhone(getContext())) {
        cardHeader.setOnClickListener((View v) -> {
            // do something
 });

以及xml文件:

代码语言:javascript
复制
<androidx.cardview.widget.CardView
    android:id="@+id/cardView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardBackgroundColor="@color/white">

         <RelativeLayout
            android:id="@+id/cardHeader"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">


            ....contains other views

          </RelativeLayout>
</androidx.cardview.widget.CardView>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-24 09:22:52

设置您对子View的单击,并在需要时为父级添加OnClickListener,并在调用cardHeader.performClick()cardHeader.callOnClick()方法中设置

代码语言:javascript
复制
cardHeader.setOnClickListener((View v) -> {
        // do something
});

if (isTablet(getContext())) {
    cardView.setOnClickListener((View v) -> {
        cardHeader.callOnClick();
    });
}
票数 1
EN

Stack Overflow用户

发布于 2020-11-24 10:06:44

根据您的代码,它的标题在平板电脑中是不可点击的。但我想您的要求是,您希望标题在两种情况下都是可点击的,无论它的平板电脑或手机和卡片是否只在平板电脑的情况下才能点击。

代码语言:javascript
复制
cardHeader.setOnClickListener((View v) -> {
        // do something
});

if (isTablet(getContext())) {
    cardView.setOnClickListener((View v) -> {
        //do something
    });
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64983489

复制
相关文章

相似问题

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