2012-06-03 3 views
2

Я создал собственный список с изображением и текстовым просмотром. При установке стилей селектор не отображается. Стиль вызывается с помощью setTheme (R.style.rose); в методе создания Listactivity в качестве первого вызова. Однако, если в качестве фона не используется цвет (или комментируется фоновая линия в стиле), тогда отображается оранжевый селектор. Но не тогда, когда фонAndroid listselector не отображается в пользовательском listview

listSelector

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

<item android:state_pressed="true" 
     android:drawable="@drawable/list_selector_background_pressed" /> 

<item android:state_focused="true" 
     android:drawable="@drawable/list_selector_background_focus" /> 

стиль

<style name="rose"> 
    <item name="android:textColor">@color/pink</item> 
    <item name="android:background">@color/rose</item> 
    <item name="android:cacheColorHint">@color/rose</item> 

    <item name="android:listSelector">@drawable/listitem_selector</item> 
</style> 

ответ

11

Android первым рисует фон ListView, а также разделители. Затем система выбирает селектор списка. Наконец, ListView отображает все элементы. Таким образом, селектор списка никогда не будет виден с непрозрачным фоном, установленным в itemviews

http://android.cyrilmottier.com/?p=454

enter image description here

+6

Вы можете указать, чтобы нарисовать селектор на верхней части itemviews установки 'drawSelectorOnTop' истинным (HTTP://developer.android.com/reference/android/widget/AbsListView.html#attr_android:drawSelectorOnTop) – Jelle

+3

@Jelle Однако селектор также покроет текст элемента (так что вы не увидите свои предметы, если у вас есть селектор оппортунов) –

+0

Jelle И Алекс оба правы. В моем случае у меня есть listview, в котором элемент списка полностью покрывает изображение. Поэтому мне нужно показать селектор сверху с учетом его оппота. Пример: - цвет - # 80000000 (светло-черный) –