2010-10-29 14 views
14

Ich bin ein Android-Neuling der UI-Seite der Dinge zu lernen versuchen, und es ist in meinem Kopf zu tun hier, was habe ich jetzt.Wie style ich ausgewählten Artikel in Android ListView?

breeds_listing.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"> 
    <ListView android:id="@+id/breedsListView" 
     android:layout_width="fill_parent" android:layout_height="fill_parent" 
     android:dividerHeight="0px" android:divider="#00000000"></ListView> 
</LinearLayout> 

breeds_listing_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:background="@drawable/list_item_background" 
    android:orientation="horizontal" > 
    <TextView android:id="@+id/allbreeds_single_item" 
     android:layout_width="fill_parent" android:layout_height="fill_parent" 
     android:gravity="center_horizontal"></TextView> 
</LinearLayout> 

list_item_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#043402" /> 
    <stroke android:width="3dp" color="#ffff8080" /> 
    <corners android:radius="8dp" /> 
    <padding android:left="10dp" android:top="10dp" android:right="10dp" 
     android:bottom="10dp" /> 
</shape> 

W Ich habe Mühe, herauszufinden, wie ich den ausgewählten Artikel style? Im Moment hat der ausgewählte Gegenstand einen scheußlichen orangefarbenen Hintergrund, der unter dem abgerundeten grünen Rechteck einen orangefarbenen Umrißeffekt ergibt. Ich bin mir sicher, dass ich die Dinge nicht im Einklang mit den Best Practices gemacht habe, so dass jegliche Vorschläge oder Verbesserungen sehr geschätzt werden.

Vielen Dank, D.

Antwort

26

ich dies tun:

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

    <item android:state_pressed="true"> 
     <shape > 
     <solid android:color="#929292" /> 
     </shape> 
    </item> 



    <item> 
    <shape > 
     <solid android:color="#FFFFFF" /> 
    </shape> 
    </item> 

</selector> 

So können Sie diese Eigenschaft verwenden android:state_pressed="true"

In meinem Beispiel wird die Zelle Hintergrund nur weiß sein, und grau wenn gedrückt.

Ich hoffe, es hilft!

+0

Yup - Ich bin schrecklich beim Vergessen zu wählen oder Antworten zu akzeptieren! Ich werde definitiv daran arbeiten ... bin gerade meine Fragen durchgegangen und habe diejenigen markiert, die für mich funktionierten. Danke für die sanfte Erinnerung: o) – codedog

+0

Yippeeeee! Ich habe es zur Arbeit gebracht - danke, dass du mich über den Verstand gebracht hast! Weiß nicht, warum ich nicht daran gedacht habe, da wir in der WPF-Welt meines Tagesjobs etwas sehr ähnliches machen! Es ging nur darum, den richtigen Zustand zu finden: o) – codedog

+0

Freut mich zu hören, dass es für dich funktionierte ^^ –

3

Sie müssen eine StateListDrawable verwenden.

Sie können ein Beispiel für ListView-Elemente finden here.

Wenn Sie eine bestimmte Farbe/Zeichnungsfarbe wünschen, wenn der Artikel ausgewählt ist, verwenden Sie android:state_focused="true".

Verwandte Themen