GridView项目选择器选中状态不显示

时间:2013-03-28 21:16:45

标签: android android-gridview android-selector

我有一个GridView,其中包含一些使用自定义适配器填充的项目。在java中,网格视图设置为CHOICE_MODE_MULTIPLE_MODAL,我可以使用上下文操作栏选择内容(所有这些都可以正常工作)。

我希望网格项在按下时突出显示,并在选中时显示不同的突出显示(确切地说,您将在ICS的Gallery应用中看到这种行为)。

我有一个在网格视图XML中指定的选择器,如下所示:listSelector="@drawable/grid_item_selector"。我还指定了android:drawSelectorOnTop="true"。这是选择器XML:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/grid_item_selected" android:state_activated="true"/>
<item android:drawable="@drawable/grid_item_selected" android:state_checked="true"/>
<item android:drawable="@drawable/grid_item_selected" android:state_selected="true"/>
<item android:drawable="@drawable/grid_item_pressed" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>

</selector>

按下状态完美无缺。但是,选中/选中的状态永远不会出现。

即使我在我的java代码中设置了要检查的项目,也不会出现检查状态。

我无法将选择器设置为网格项本身的背景,因为我需要将选定的状态drawable作为前景,而不是背景。

1 个答案:

答案 0 :(得分:1)

选择器仅显示您正在触摸的事物。一旦你用手指离开它就不再显示了。

所以,我最终做的是在布局的底部放置一个视图(因此它显示在顶部),背景设置为选择器。 选择器只有state_selected的任何内容。 操作系统处理剩下的工作。

不完全是最好的,但它有效...