Android 冰淇淋三明治:为什么列表视图项目默认保持选中状态



我在Android ICS上遇到了一个奇怪且显然未记录的问题。这是我的列表视图的 xml 代码:

<ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent" 
        android:focusable="false"
        android:listSelector="@drawable/cell_selected_small"
        android:descendantFocusability="afterDescendants" />

在 Android 2.2(在多个设备上测试)上,列表视图选择在触摸结束后立即清除。我认为这是正确的行为。

在 Android 4.0 及更高版本中,即使onListItemClick()在堆栈上推送新的活动,然后按下后退按钮,列表视图选择也会保持选中状态。如果然后我滚动列表视图一段时间,选择会在明显随机的时间后消失。

你们中有人遇到过同样的问题吗?谢谢!

是的,这是一个奇怪的问题...设置列表视图的一个属性以解决此问题。

android:choiceMode="singleChoice"

希望这会对你有所帮助..:-)

不完全确定,但我将清单中的targert_sdk设置回 10,一切正常,所以我去查看了文档中的兼容性内容。 API 11 列表暗示了该行。

• GridView 和 ListView 如果未实现"可检查",则将对所选项使用 View.setActivated 。

我认为是相关的。 我有

android:choiceMode="singleChoice"

在我的 XML 中并将其更改为

android:choiceMode="none"

这看起来让事情回到了我想要的。

最新更新