列表项单击触发子视图的选择器

时间:2012-07-13 16:10:04

标签: android listview

我的布局中有一个ImageView,用于列表中的各个项目。

ImageView的src是drawable文件夹中的XML文件,用于定义在按下项目的各种状态下要使用的图像。

但是,我注意到当您单击列表行(而不是ImageView本身)时,会激活分配给ImageView的选择器。它实际上并没有触及ImageView的onClick代码,但是图像会像点击一样切换。

在某些情况下,这实际上是一种理想的效果,但在这种特定情况下并非如此。有没有办法阻止这种情况发生?

2 个答案:

答案 0 :(得分:11)

将子级中的android:duplicateParentState设置为true

答案 1 :(得分:0)

我想你应该阅读Cyril Mottier的博客。他有关于此here的帖子。

总之,您必须将子视图扩展为覆盖方法setPressed(boolean),如下所示:

    @Override
    public void setPressed(boolean pressed) {
        if (pressed && getParent() instanceof View && ((View) getParent()).isPressed()) {
            return;
        }
        super.setPressed(pressed);
    }