2012-04-04 40 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左右。您可以使用背景屬性