我想在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。 这是为什么?
答案 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"