我想在主题中设置 ListView 样式,以便应用程序的所有 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。但似乎该样式未应用于列表视图。为什么?
最后我明白了原因,我应该使用 android:listViewStyle 属性而不是 absListViewStyle:
风格.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>
通过这种方式,我可以在主题 xml 中应用列表视图样式。
您需要
在 xml 中的列表视图上设置它,以便列表视图添加:
style="@style/AbsListViewStyle.Light"