列表行中的imageview会在行上的任何区域上突出显示

时间:2014-08-03 12:43:21

标签: android android-listview selector android-imageview

列表视图行在行的右端有一个可单击的图像。 我在图像上应用了一个选择器(点击蓝色背景) 触摸行的任何部分,图像会改变颜色。 我希望它只显示图像视图区域的蓝色背景

<ImageView
            android:id="@+id/sample"
            android:layout_width="55dp"
            android:layout_height="fill_parent"
            android:layout_gravity="center_vertical"
            android:duplicateParentState="false"
            android:background="@drawable/button_selector"
            >
        </ImageView>

1 个答案:

答案 0 :(得分:1)

这是因为您的imageView在listview中具有焦点和消费点击事件,因此您必须添加:

    <ImageView
        android:id="@+id/sample"
        android:layout_width="55dp"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical"
        android:duplicateParentState="false"
        android:background="@drawable/button_selector"

        android:focusable="false"

    </ImageView>

现在如果你点击它时在右边的地方(在适配器getView内)设置了imageView点击监听器,它就会改变,当你点击其他列表项目视图时它就不会响应。

你也可以用另一种方式来做。而不是使用imageView单击侦听器使用listItemclick侦听器并使用视图传递给您,并使用View·getCurrentFocus()查看是否单击了哪个项目,以查看它是否是您的imageview。