0

我有一个列表,其中列表项有 2 个可点击的图标。问题是,在 Android 2.3 到 Android 4.0.3 上,当我按下列表项时,不仅行被突出显示,而且图标也被突出显示,但在 Android > 4.1 上并非如此,这里它应该像它一样工作,只是该行被突出显示。

我的列表的选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:custom="http://schemas.android.com/apk/res-auto">

<item android:state_window_focused="false" android:state_activated="false" android:drawable="@android:color/transparent" />    
<item android:state_focused="true"    android:state_enabled="false"  android:state_pressed="true"  android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true"    android:state_enabled="false"                                android:drawable="@drawable/list_selector_disabled_holo_light" />    
<item android:state_focused="true"                                   android:state_pressed="true"  android:drawable="@drawable/dna_list_selector_background_transition_holo_light" />    
<item android:state_focused="false"                                  android:state_pressed="true"  android:drawable="@drawable/dna_list_selector_background_transition_holo_light" />      
<item android:state_focused="true"                                                                 android:drawable="@drawable/list_focused_holo" />    
<item android:state_activated="true"  android:drawable="@drawable/list_longpressed_holo" />

这是图标的选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:custom="http://schemas.android.com/apk/res-auto">

<item android:state_window_focused="false" android:state_activated="false" android:drawable="@android:color/transparent" />    
<item android:state_focused="true"    android:state_enabled="false"  android:state_pressed="true"  android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true"    android:state_enabled="false"                                android:drawable="@drawable/list_selector_disabled_holo_light" />    
<item android:state_focused="true"                                   android:state_pressed="true"  android:drawable="@drawable/dna_list_selector_background_transition_holo_light" />    
<item android:state_focused="false"                                  android:state_pressed="true"  android:drawable="@drawable/dna_list_selector_background_transition_holo_light" />      
<item android:state_focused="true"                                                                 android:drawable="@drawable/list_focused_holo" />    

我已经搜索了很多并试图找出问题,但我没有得到它。Android 4.1 上的行为是否发生了变化?

4

1 回答 1

0

问题是,直到独家 android 4.1,按下状态也被赋予根列表视图的孩子,并看到我定义了以下内容:

<item android:state_focused="false" 
     android:state_pressed="true" 
     android:drawable="@drawable/dna_list_selector_background_transition_holo_light" />

列表项中的图标直到 android 4.1 被按下但没有聚焦。我不知道这是一个错误还是设计的,但孩子们也得到了按下状态,这对我来说并不明智。从 Android 4.1 开始,列表项中的图标不再处于按下状态。

解决方案是将上述选择器更改为:

<item android:state_focused="false"   
      android:state_pressed="true"  
      android:drawable="@android:color/transparent" />
于 2014-01-16T12:34:06.767 回答