【发布时间】:2014-11-26 07:32:39
【问题描述】:
我有一个问题:我有一个带有 MULTI_CHOICE 侦听器的 ListView,它打开了 ContextualActionBar。对于此列表中的每个项目,我已在根布局上设置了背景。这是 XML:
<item android:drawable="@color/light_blue_alpha"
android:state_activated="true"/>
<item android:drawable="@color/light_blue"
android:state_pressed="true"/>
<item android:drawable="@drawable/card_background"/>
在这种情况下,默认背景是卡片布局(基本上是白色)。按下该项目时,背景是完整的浅蓝色。激活时(通过 CAB 选择),背景为 0.5 alpha 的浅蓝色。
这是正在发生的事情:
我启动了驾驶室。如果我在 CAB 期间选择了一个新项目,该项目将其背景更改为 light_blue(按下时)。当我松开手指时,它会变为默认背景card_background。几毫秒后它被激活,然后变为light_blue_alpha
所以基本上我得到了这种闪烁的蓝白蓝。我想要实现的是“删除”白色背景事务。例如,我看到 Gmail 应用程序完全符合我的要求。
如何做到这一点?谢谢!!
编辑: 我尝试将所有内容移至根 listSelector。这是选择器:
<item android:state_pressed="true" android:drawable="@color/light_blue"/>
<item android:state_activated="true" android:drawable="@color/light_blue_alpha"/>
<item android:drawable="@android:color/transparent"/>
我还将 drawOnTop 设置为 true,并且正确应用了按下的背景。但是 state_activated 没有!当我启动 CAB 时,该项目返回到其默认背景。为什么不用state_activated后台??
【问题讨论】:
-
你能附上
what is happening和what you want to acheive:) -
没错。但我可以做到这一点。问题是当我在项目上松开手指时,项目会退回到其默认背景,并在几毫秒后被激活,因此它会进入激活的背景。我想禁用或隐藏手指释放效果。我希望该项目直接从按下的背景转到激活的背景
标签: android android-listview android-selector android-contextmenu