我有两个可用作背景的drawable,用于指示列表项的状态(按下或选择)。 Pressed drawable是一个选择器,但没有指定状态;它通过XML连接成为列表的android:listSelector。在Android中避免高亮显示闪光灯
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/my_actual_drawable" />
</selector>
的选择可绘制的,但是,由代码应用,因为它的复杂,超过一个简单的背景绘制的变化时,需要选择一个项目的情况发生。
如果我在两个列表项之间快速点击,一个项目可以有(并且保持)Selected highlight,而另一个项目有(并且保持)Pressed突出显示。我相信这是因为媒体发生得如此之快以至于它不会被底层框架解读为点击,所以没有onItemClick
到达我的列表。
一种解决方案是使用与国家的选择(这就是选择是!):
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/my_actual_drawable" />
</selector>
但这关闭压亮点我的代码之前,可以将选定的亮点的不幸影响,所以在两个州之间有一个不亮的闪光灯,无论我在onItemClick
处理程序中多早,我都会把setBackgroundResource
调用。
另一种解决方案是不仅监视onItemClick
事件,而且还监视onTouch
事件,并处理代码中的所有内容;看起来会让事情变得太慢。
我该怎么做才能避免闪光灯和双选状态?
谢谢;这是有道理的。我会尝试一下,让你知道它是如何工作的。 – 2010-09-10 13:44:05