2015-06-29 7 views
2

Основная тема моего приложения наследуется от Theme.AppCompat, и я создал селектор, который позволяет эффекту Ripple иметь место, когда вы нажимаете и фокусируете кнопку на Lollipop.Перезаписать список списка по умолчанию выделенный цвет в теме AppCompat

Однако, когда я возвращаюсь к устройству 4.0, он по умолчанию возвращает к уродливому синему цвету, когда я фокусирую элемент списка. Я везде искал черту, которая определяет этот цвет, надеясь переопределить его без везения - любая идея, как я могу это сделать?

ответ

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> 

Изменение @drawable/abc_list_selector_dark на любой селектор вы хотите использовать. В качестве дополнительного бонуса я добавил, как изменить разделитель listview и его высоту.

+0

Можете ли вы использовать селектор цветов для спискаSelector, или это должны быть фактические чертежи? – hendersawn

+0

Вы можете использовать селектор цветов. Вы все равно будете называть его '@ drawable/my_colors_selector' и вместо использования фактического изображения в вашем селекторе просто используйте @ drawable/my_color – jmateo

+0

К сожалению, похоже, что он не работает. Похоже, что в списках видят этот отвратительный синий цвет по умолчанию из SOMEWHERE, хотя я не могу понять, где. – hendersawn

3

К сожалению, пока не работает. Перечни просмотров по-прежнему кажутся получать этот отвратительный синий цвет по умолчанию из SOMEWHERE, хотя Я не могу понять, где.

Я привык чувствовать, как ты, как на отвратительного и сердитого где часть. Однако мне удалось избавиться от него.

Если я хорошо помню, виновником должно быть android:listChoiceBackgroundIndicator. Попробуйте следующее:

<style name="MainTheme" parent="Theme.AppCompat"> 

    <item name="android:listChoiceBackgroundIndicator">@drawable/my_selector</item> 
    <item name="listChoiceBackgroundIndicator">@drawable/my_selector</item> 

</style> 
Смежные вопросы