Ответ 1
Мне нужно было сделать это, чтобы переопределить типичный стиль Holo Spinner (я не хотел подчеркивать элемент - я просто хотел стрелку), и я думаю, что это можно переопределить точно так же:
Прежде всего, вы хотите найти элемент, который хотите переопределить в источнике стилей Android. Существует невероятно полезный ответ SO, который содержит все стили (и имена, чтобы переопределить их) прямо здесь: Установить тему диалога для родительской темы в Android
Я считаю, что ваша следующая строка:
<item name="listSeparatorTextViewStyle">@android:style/Widget.Holo.Light.TextView.ListSeparator</item>
Это приведет нас к путешествию, чтобы найти стиль Widget.Holo.Light.TextView.ListSeparator, который должен жить где-то на вашем собственном компьютере! Но я сделаю это легко и просто c & p it:
<style name="Widget.Holo.Light.TextView.ListSeparator" parent="Widget.TextView.ListSeparator">
<item name="android:background">@android:drawable/list_section_divider_holo_light</item>
</style>
Теперь вы, вероятно, захотите оставить достаточно хорошо в одиночку, а просто посмотреть на этот фон. Вы увидите, что это серый 9patch файл, который выглядит как зловещая серая линия, которую вы пытаетесь избежать.
Нам нужно переопределить это. Я уверен, что есть несколько способов сделать это, но я делаю это, настраивая тему приложения. Вот файл themes.xml:
<style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:listSeparatorTextViewStyle">@style/MyOwnListSeperatorTextViewStyle</item>
</style>
<style name="MyOwnListSeperatorTextViewStyle" parent="Widget.TextView.ListSeparator">
<item name="android:background">@drawable/make_your_own_blue_9_patch_here</item>
</style>
Обратите внимание на то, как мы использовали listSeparatorTextViewStyle
из предыдущего сообщения SO. А родителем пользовательского стиля является Widget.TextView.ListSeparator
из источника стиля Android. Все очень важно.
Теперь вам просто нужно применить эту тему к своему приложению, но я предполагаю, что у вас уже есть тема. Если вы еще этого не сделали, вам нужно будет сделать свой собственный 9patch, но я просто посмотрю на файл list_section_divider_holo_light.9.png на вашем компьютере и сделаю серые части синими, а затем сделаю копию и поместит ее в свой собственный папка drawables.
Надеюсь, это сработает и поможет!