如何在资源中设置ListView样式?

时间:2014-02-28 13:42:40

标签: android styles

我想在Theme中设置ListView样式,以便Application的所有ListView都将继承样式。我的代码如下所示:

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>

我在AndroidManifest.xml中设置了Activity的主题。 但似乎该样式不适用于ListView。 这是为什么?

2 个答案:

答案 0 :(得分:9)

最后我得到了原因,我应该使用android:listViewStyle属性而不是absListViewStyle:

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>

通过这种方式,我可以在Theme xml中应用ListView样式。

答案 1 :(得分:3)

您需要在xml中的ListView上设置列表视图add:

    style="@style/AbsListViewStyle.Light"