如何继承样式“?android:listSeparatorTextViewStyle”并将分隔线颜色更改为蓝色?

5
我希望在一个文本视图下面有一条蓝色的线,我看到了这篇文章,在这篇文章中,我尝试了其中的一个答案,并且它运行良好,但我想改变文本视图和下面的线的颜色。 只需添加此样式即可:
style="?android:listSeparatorTextViewStyle"

将其添加到TextView中

我也尝试提取样式,但在继承所述样式时出现错误

我的样式如下

<style name="blueBoldText" parent="?android:listSeparatorTextViewStyle">
    <item name="android:textColor">@color/DarkTurquoise</item>
    <item name="android:textStyle">bold</item>
</style>

你找到解决方案了吗? - M.SH
2个回答

2

实际上,属性值为

?android:listSeparatorTextViewStyle

的含义是

@android:style/Widget.Holo.Light.TextView.ListSeparator

那么你可以继承这个样式。

请解释一下你是如何发现这两者之间的关系的?我在哪里可以查看它?谢谢! 更新:现在我明白了,在这里: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml - gabor.orosz
我只是使用“搜索声明”功能(Eclipse上的F3和Android Studio上的Ctrl-B)。它会打开声明。 或者,如果您在平台的源文件夹中搜索文本,则会找到此行代码:<item name="listSeparatorTextViewStyle">@android:style/Widget.Holo.Light.TextView.ListSeparator</item> - Son Huy TRAN
12
这个还能公开吗?尽管编辑器似乎接受了这个值,但编译器生成了一个错误:Error retrieving parent for item: No resource found that matches the given name '@android:style/Widget.Holo.Light.TextView.ListSeparator'. - Greg Ennis

1
你可以扩展 TextView 并设置 listSeparatorTextViewStyle。
public class HeaderView extends TextView {
    public HeaderView(Context context) {
        super(context, null, android.R.attr.listSeparatorTextViewStyle);
    }
    public HeaderView(Context context,
                    AttributeSet attrs) {
        super(context, attrs, android.R.attr.listSeparatorTextViewStyle);
    }
}

那么

<com.gmail.sikambr.alib.HeaderView
    style="@style/your_style"
    android:text="..."
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接