0

我有一个使用自定义适配器的 GridView,它由一个包含图像视图的相对布局组成。我在 gridview 上启用了 MultiChoiceMode 并启用了 CAB(上下文操作栏)。这很好用,但是我很难在选择网格项时如何在网格项周围显示一个持久选择器。我的选择器在最初的按下时工作,但我还没有找到一种方法,它会一直持续到项目被取消选择。

预期: 用户长按一个项目,项目被选中,应用程序进入CAB模式。当每个项目被按下时,一个紫色框架(由我在 XML 中的选择器语句定义)将出现在每个对象周围,直到它们被取消选择。

结果: 用户长按一个项目,该项目短暂显示选择器,它消失了,用户没有得到选择或取消选择项目的视觉反馈,即使它已在代码中注册。

我已经尝试了每一个选择器事件,但似乎没有一个可以处理这个问题。任何解决方法?有什么我想念的吗?

通过尝试长按 Android 4.0 或 4.1 Gallery 应用程序中的项目来展示我试图实现的一个示例

---> API 15 <---

4

1 回答 1

1

尝试修改列表项的布局以具有不同的背景属性:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listItemRelativeLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"
    android:background="?android:attr/activatedBackgroundIndicator">

    ...

</RelativeLayout>

该 Android 属性引用了在您调用 listView.setItemChecked(int index, boolean checked) 时使用的选择器,并且由于某种原因,它似乎以这种方式工作。

此外,请验证您是否在列表视图中调用它:

listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
于 2012-07-31T04:23:12.313 回答