单击事件不会传播到子视图

时间:2011-09-15 11:18:34

标签: android android-layout onclick

我有一个活动A1,它有几个视图

和另一个ViewGenerator类,它有一个通过方法getView()

返回视图的方法

我通过为A1创建一个对象并调用getView来调用此方法。 我的班级工作正常,我能够得到视图。但是,该视图的任何子项都不可点击,不会对该子项触发click事件。

这是A1的getView方法

public View getView(Main ctx) {

    return getArticleView();

}

这里是getArticleView

private View getArticleView(Main ctx) {
    LayoutInflater lft = (LayoutInflater) ctx
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout lin = (RelativeLayout) lft.inflate(
            R.layout.article_view, null);
    RelativeLayout articleView = (RelativeLayout) lin
            .findViewById(R.id.article_view);

    summaryStuff(ctx);

    return articleView;
}

这里是summaryStuff

private void sharingStuff(final Main ctx) {
    LayoutInflater lft = (LayoutInflater) ctx
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout lin = (RelativeLayout) lft.inflate(R.layout.summary_bar,
            null);
    bookmarkRibbon = (ImageView) lin.findViewById(R.id.bookmark_selector);
    bookmarkRibbon.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            bookmarkRibbon.setImageResource(R.drawable.bookmark_yellow);
        }
    });
}

你可以看到bookmarkRibbon有一个监听器。但它不可点击或至少事件未被触发

从Activity的onCreate方法

调用View

1 个答案:

答案 0 :(得分:0)

ImageView,默认情况下不可点击,i:e无法注册点击事件。

确保将图像视图设置为可点击

bookmarkRibbon.setClickable(true);

在引用它之后。