在AppCompat主题中覆盖默认列表视图突出显示的颜色

hen*_*awn 2 android android-appcompat android-listview android-theme

我的应用程序的主要主题继承自Theme.AppCompat,并且我创建了一个选择器,当您按下并将焦点按在Lollipop上时,可以进行Ripple效果.

但是,当我回到4.0设备时,当我聚焦列表视图项时,它默认返回到丑陋的蓝色.我到处寻找定义这种颜色的特性希望在没有任何运气的情况下覆盖它 - 任何想法我怎么能这样做?

jma*_*teo 5

将其添加到您的主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="android:listViewStyle">@style/ListViewAppTheme</item>
    <item name="android:listViewWhiteStyle">@style/ListViewAppTheme.White</item>
</style>
 <style name="ListViewAppTheme" parent="Base.Widget.AppCompat.ListView">
    <item name="android:listSelector">@drawable/abc_list_selector_dark</item>
    <item name="android:divider">@drawable/ab_divider_light</item>
    <item name="android:dividerHeight">1px</item>
</style>

<style name="ListViewAppTheme.White" parent="Base.Widget.AppCompat.ListView.White">
    <item name="android:listSelector">@drawable/abc_list_selector_dark</item>
    <item name="android:divider">@drawable/ab_divider_light</item>
    <item name="android:dividerHeight">1px</item>
</style>
Run Code Online (Sandbox Code Playgroud)

更改@drawable/abc_list_selector_dark为您要使用的任何选择器.作为额外的奖励,我添加了如何更改listview的分隔符及其高度.