2013-07-31 4 views
16

avant de poster ce fil, j'ai googlé (comment styliser les éléments listview) je ne peux pas trouver un bon exemple pour montrer comment styliser l'élément listview (normal, toucher, long clic etc) couleurs de fond aussi je veux faire comme ça VK listview avec le rayon de la frontière et l'ombre de la boîte, s'il vous plaît j'ai vraiment besoin de cette aide aussi d'autres personnes recherchant ceci est là un exemple ou peut-on me dire ce que je dois mettre à l'intérieur du sélecteur xml?android listview style d'article?

image que l'on montrent comment LISTVIEW article a un rayon de frontière et de l'ombre

enter image description here

image 2 montrant quand je clique sur l'élément

enter image description here

donc les gars est-il possible de fait comme ça ?

Répondre

22

Bien sûr, il est préférable d'utiliser des styles ici:

<!-- res/values/styles.xml --> 
<style name="ListView" parent="@android:style/Widget.ListView"> 
    <item name="android:background">@color/light_grey</item> 
    <item name="android:cacheColorHint">@android:color/transparent</item> 
    <item name="android:divider">@android:color/transparent</item> 
    <item name="android:dividerHeight">0dp</item> 
    <item name="android:listSelector">@drawable/list_item_selector</item> 
</style> 

La @color/light_grey définition:

<!--- res/values/colors.xml ---> 
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="light_grey">#cccccc</color> 
</resources> 

Vous aurez à définir la couleur light_grey dans votre colors.xml et de créer le style de carte list_item_selector.xml dans votre dossier drawables:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:drawable="@drawable/item_selected" android:state_pressed="true"/> 
    <item android:drawable="@drawable/item_focused" android:state_focused="true"/> 
    <item android:drawable="@drawable/item_normal"/> 
</selector> 
+0

dans 'selector' vous utilisez' drawable' pour définir les arrière-plans mais j'ai besoin de définir des couleurs d'arrière-plan comme '# ffffff' comment? –

+0

Parce que vous regardez un style de carte avec une ombre, vous devrez utiliser un dessin 9-patch, sinon le sélecteur s'étendra jusqu'au bord de chaque élément de la liste, ce qui serait laid. – Krylez

+4

@Krylez comment régler cela à 'listView' ce code:' style = "@ style/ListView" 'ne fonctionne pas –

0

La meilleure façon est de passer outre votre valeur dans votre AppTheme dans le fichier styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="android:listSelector">@color/teal_100</item> 
</style> 

Cette surcharge reflète sur tous vos listviews que vous utilisez dans votre application.

Vous pouvez également utiliser dessinable au lieu de couleur.