2012-04-04 17 views

回答

69

原来这就是我最终使用:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <style name="sectionHeader" parent="android:Widget.Holo.Light.TextView"> 
     <item name="android:drawableBottom">@drawable/section_header</item> 
     <item name="android:drawablePadding">4dp</item> 
     <item name="android:layout_marginTop">8dp</item> 
     <item name="android:paddingLeft">4dp</item> 
     <item name="android:textAllCaps">true</item> 
     <item name="android:textColor">@color/emphasis</item> 
     <item name="android:textSize">14sp</item> 
    </style> 
</resources> 

凡@绘制/ section_header是:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <size android:width="1000dp" android:height="2dp" /> 
    <solid 
     android:color="@color/emphasis"/> 
</shape> 

而@颜色的:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="emphasis">#31b6e7</color> 
    <color name="bg_gray">#cecbce</color> 
</resources> 
+1

这不会使蓝线突出显示在下面的文本上,例如在下面的TextView的GridLayout中。我想这是因为他们不在屏幕截图中使用TextViews。正确的行为应该是什么? – pjv 2012-12-20 17:59:16

+14

noobs的提示:最上面的代码应该在res/values/sectionHeader.xml中。@colors部分应该在res/values/colors.xml中。用法:在需要此标题的textview上设置style =“@ style/sectionHeader”。在该文本视图上使用边距=“15dp” – 2013-02-27 14:16:51

+0

这很接近,但您需要稍微修改它,如同annie的答案中的样式:textStyle为粗体。 paddingLeft的8dp而不是4,我会使drawable的高度为1dp而不是2.同样,添加一个8dp的paddingBottom。 – joepetrakovich 2013-09-07 19:17:07

2

我不确定它是哪种风格,但偏好应用程序也使用它(或类似的东西)。这是一个部分标题。此外,TextField将textAllCaps设置为true。你也许可以找到它的SDK的资源文件夹,如果您要查找的textAllCaps :)

+3

设置颜色仅供参考,仅适用于API Level 14及更早版本。您必须以编程方式设置所有大写字母,或者在字符串资源文件中使用特殊的大写字符串,才能在Level 14之前使用此工具。 – annie 2012-09-10 18:21:15

+1

14及更高版本,但是,您是对的。 – dmon 2012-09-10 18:39:12

52

布兰登的权利;你现在需要做定制工作来获得蓝色风格,这是令人沮丧的,因为它贯穿新的设计指南。

不幸的是,您不能将Widget.Holo.Light.TextView.ListSeparator作为自定义样式的父级,因为它是私有的。

但是,如果你有兴趣,在短短的灰线,您可以使用普通的Android风格的行内:

style="?android:attr/listSeparatorTextViewStyle" 

这将至少让你的灰线,全部大写字母风格:

enter image description here

布兰登的答案会让你到自定义的蓝色风格。

仅供参考,如果你想从目前的(V15)正是继承Android的样式列表分隔符,在Android中使用Widget.TextView.ListSeparatorWidget.Holo.Light.TextView.ListSeparator结合的风格,你可以通过复制到一个新的风格是:

<item name="android:background">@drawable/list_section_divider_holo_light</item> 
<item name="android:textAllCaps">true</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">?android:textColorSecondary</item> 
<item name="android:textSize">14sp</item> 
<item name="android:gravity">center_vertical</item> 
<item name="android:paddingLeft">8dip</item> 

虽然你必须将drawable复制到自己的目录,因为它们是私有的。

0

我说,画线只是使用一个视图,高度设置tu 1dp左右。您可以使用背景属性