2014-01-14 5 views
0

У меня есть список, в котором элементы списка имеют 2 щелчка мыши внутри. Проблема в том, что на Android 2.3 до Android 4.0.3, когда я нажимаю элемент списка, не только подсвечивается строка, но также выделяются значки, но на Android> 4.1 это не так, здесь это работает, как должно, только строка подсвечивается.Android странное поведение селектора списков

Селектор моего списка:

<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" />  

Я уже искал много и пытались найти но я не понимаю. Был ли beheviour изменен на Android 4.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" />