我有一个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作为前景,而不是背景。
答案 0 :(得分:1)
选择器仅显示您正在触摸的事物。一旦你用手指离开它就不再显示了。
所以,我最终做的是在布局的底部放置一个视图(因此它显示在顶部),背景设置为选择器。 选择器只有state_selected的任何内容。 操作系统处理剩下的工作。
不完全是最好的,但它有效...