0

我的问题是在 Android 中你可以让一个选择器项优先于另一个。我遇到的问题是最后一项被选中而不是第二项。在我的代码中,我使用了 listView,并且在 onItemClick 和 LongItemClick 中我都编写了 view.setHovered(true); 仅在未激活视图时才有效。如果它被激活,则使用@color/black 而不是@color/white。提前致谢!

<item android:state_activated="false" android:state_hovered="false" android:color="@color/gray_light"/>
<item android:state_hovered="true" android:color="@color/white"/>
<item android:state_activated="true" android:state_hovered="false" android:color="@color/black"/>

Edit1:也许这就是问题所在:调用 v.setActivated / v.setHovered 的顺序是否重要?Edit2:我已经在 v.setActivated(true) 调用之后放置了所有 v.setHovered(true) 调用,但它仍然选择 @color/black。

4

1 回答 1

1

改变顺序。如API 指南所述

在每次状态更改期间,从上到下遍历状态列表并使用与当前状态匹配的第一项——选择不是基于“最佳匹配”,而只是满足状态最低标准的第一项.

于 2013-08-20T10:31:50.027 回答