2014-02-28 7 views
5

Ich möchte den ListView-Stil im Design festlegen, so dass alle ListView der Anwendung den Stil erben wird. Mein Code sieht so aus:Wie wird der ListView-Stil in der Ressource festgelegt?

style.xml 

<!-- Light Theme of the Application --> 
<style name="AppTheme.Light" parent="Theme.Sherlock.Light"> 
    <item name="actionBarStyle">@style/ActionBar.Green</item> 
    <item name="android:absListViewStyle">@style/AbsListViewStyle.Light</item> 
</style> 

<style name="AbsListViewStyle.Light" parent="android:style/Widget.AbsListView"> 
    <item name="background">@color/background_light</item> 
    <item name="android:divider">@color/light_gray</item> 
    <item name="android:dividerHeight">1dp</item> 
    <item name="android:listSelector">@drawable/actionbar_background_green</item> 
    <item name="android:drawSelectorOnTop">false</item> 
    <item name="android:cacheColorHint">#00000000</item> 
</style> 

Ich legte das Thema der Aktivität in der AndroidManifest.xml. Aber es scheint, dass der Stil nicht auf die ListView angewendet wird. Warum ist das?

Antwort

9

Schließlich habe ich den Grund sollte ich android verwenden

style.xml

<!-- Light Theme of the Application --> 
<style name="AppTheme.Light" parent="Theme.Sherlock.Light"> 
    <item name="actionBarStyle">@style/ActionBar.Green</item> 
    <item name="android:listViewStyle">@style/ListViewStyle.Light</item> 
</style> 

<style name="ListViewStyle.Light" parent="android:style/Widget.ListView"> 
    <item name="background">@color/background_light</item> 
    <item name="android:divider">@color/light_gray</item> 
    <item name="android:dividerHeight">1dp</item> 
    <item name="android:listSelector">@drawable/actionbar_background_green</item> 
    <item name="android:drawSelectorOnTop">false</item> 
    <item name="android:cacheColorHint">#00000000</item> 
</style> 

Auf diese Weise kann ich ListView Stil in der Theme XML anwenden.

3

Sie benötigen sie auf Ihren Listview für Listenansicht add in XML setzen: listViewStyle Attribut statt absListViewStyle:

style="@style/AbsListViewStyle.Light" 
+0

Was soll ich tun, wenn ich den ListView-Stil entsprechend der Anwendung Theme ändern möchte? – teejoe

+0

sollten Sie Ihren Stil von ihnen, die in der Anwendung festgelegt ist, erweitern – Unii