Liste görünümü özel seçici ile arka plan öğesi
Liste seçici ile her liste Görünümü öğesi için özel bir arka plan uygulamak mümkün mü?
Varsayılan seçici state_focused="false"
durum @android:color/transparent
belirtir, ama bazı özel drawable bu değişen seçili olmayan öğeleri etkilemez. Romain Adam bunun mümkün olduğunu in this answer önermek gibi görünüyor.
Ben şu anda elde aynı etkiler kullanarak, özel bir arka plan üzerinde her görünüm ve saklanan öğe seçildiğinde/odaklı/ne kadar seçici olduğunu göstermiştir, ama olacak daha şık olmak zorunda bu tüm tanımlı bir yer.
Başvuru için, bu deneyin ve bu çalışma almak için kullanıyorum seçici:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false"
android:drawable="@drawable/list_item_gradient" />
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false"
android:state_pressed="true"
android:drawable="@drawable/list_selector_background_disabled" />
<item android:state_focused="true" android:state_enabled="false"
android:drawable="@drawable/list_selector_background_disabled" />
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/list_selector_background_transition" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/list_selector_background_transition" />
<item android:state_focused="true"
android:drawable="@drawable/list_selector_background_focus" />
</selector>
Ve bu seçici ayarlıyorum o kadar
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />
Herhangi bir yardım için şimdiden teşekkür ederiz!
CEVAP
Bu tek başıma sinirli oldum ve nihayet çözüldü. Romain Adama ima olarak, başka bir devlet yok": state_selected" kullanmanız gerekir. android Liste öğesinin arka plan için devlet bir drawable kullanın ve listenizin listSelector için farklı bir devlet drawable kullanın:
list_row_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:background="@drawable/listitem_background"
>
...
</LinearLayout>
listitem_background.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/android:transparent" />
<item android:drawable="@drawable/listitem_normal" />
</selector>
layout.xml bu liste Görünümü içerir:
...
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:listSelector="@drawable/listitem_selector"
/>
...
listitem_selector.xml:
<?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/listitem_pressed" />
<item android:state_focused="true" android:drawable="@drawable/listitem_selected" />
</selector>
Android Liste Görünümü öğeleri arka pl...
Arka plan seçili Liste öğesi için renk...
Liste Görünümü kaydırma arka plan siya...
Nasıl gruplandırılmış bir tablo kenarl...
Liste öğeleri için alternatif arka pla...