2

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

我希望网格项目在按下时突出显示,并在选择时具有不同的突出显示(正是您将在 ICS 的图库应用程序中看到的行为)。

我有一个在网格视图 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 代码中设置了要检查的项目,检查状态也永远不会出现。

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

4

1 回答 1

1

选择器仅显示在您正在触摸的东西上。一旦你离开你的手指,它就不再显示了。

所以,我最终做的是在布局底部有一个视图(所以它出现在顶部),背景设置为选择器。选择器只有 state_selected 的任何内容。操作系统处理其余部分。

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

于 2013-06-18T13:58:03.960 回答