android – 更改listSeparatorTextViewStyle中使用的行颜色

前端之家收集整理的这篇文章主要介绍了android – 更改listSeparatorTextViewStyle中使用的行颜色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码
<TextView
            android:text="@string/hello"
            style="?android:attr/listSeparatorTextViewStyle" />

我会得到以下效果.

但是,我对色线不满意.我想要这样的东西

我想要像蓝色的彩色线一样.我尝试以下自定义样式.

<style name="MyOwnListSeperatorTextViewStyle">        
<item name="android:background">@android:drawable/list_section_divider_holo_light</item>        
<item name="android:textAllCaps">true</item>    

<!-- Copy from Widget.TextView.ListSeparator -->

<item name="android:background">@android:drawable/dark_header_dither</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">?textColorSecondary</item>
    <item name="android:textSize">14sp</item>
    <item name="android:gravity">center_vertical</item>
    <item name="android:paddingLeft">8dip</item>        
</style>

但是它将无法正常工作,因为我收到以下错误.

错误错误:资源不公开. (在“android:background”,值为“@android:drawable / dark_header_dither”).

有想法如何更改listSeparatorTextViewStyle中使用的线颜色?

解决方法

我需要这样做来覆盖典型的Holo Spinner风格(我不想要下划线的项目 – 我只是想要箭头),我认为这可以用同样的方式被覆盖:

首先,你想在android样式源中找到你要覆盖的项目.有一个令人难以置信的有用的SO答案,包含所有的样式(和覆盖他们的名字)在这里:Set Dialog theme to parent Theme in Android

我相信你的是以下一行:

<item name="listSeparatorTextViewStyle">@android:style/Widget.Holo.Light.TextView.ListSeparator</item>

这需要我们去寻找Widget.Holo.Light.TextView.ListSeparator的样式,该应用程序应该位于您自己的计算机上的某个地方!但我会很容易,只需c& p:

<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>

注意我们如何使用上一个SO帖子中的listSeparatorTextViewStyle?而父亲的自定义风格是Widget.TextView.ListSeparator从android的风格来源?都非常重要

现在你只需要将这个主题应用到你的应用程序,但我假设你已经有了一个主题.如果还没有,您将需要自己制作9个补丁,但我只需要查看计算机上的list_section_divider_holo_light.9.png文件,并使灰色部分变成蓝色,然后制作一份副本并将其放入自己的可绘图文件夹.

希望这个工作和帮助!

猜你在找的Android相关文章