Подзаголовок Android 4.0 (раздел) Стиль надписей [закрыт]

Итак, я смотрел наСайт Android Dev Design для ICS и всех приложений имеют следующие заголовки субтитров / разделов:

ICS Section Headers

Мне было интересно, знает ли кто-нибудь индивидуальный стиль для создания таких ярлыков. Я не смог найти ярлык Views, который выглядел так, в Android SDK, но мне очень нравится, как они выглядят.

Заранее спасибо!

Ответы на вопрос(4)

Я не уверен, какой именно это стиль, но приложение настроек также использует его (или что-то очень похожее). Это заголовок раздела. Кроме того, TextField имеетtextAllCaps установить в true. Вероятно, вы можете найти его в папке ресурсов SDK, если вы ищете textAllCaps :)

 10 сент. 2012 г., 20:39
14 и позже, но да, вы правы.
 10 сент. 2012 г., 20:21
К вашему сведению, это доступно только для API уровня 14 и более ранних. Вам придется установить все заглавные буквы программно или использовать специальные строки всех заглавных букв в файлах строковых ресурсов, чтобы это работало до уровня 14.

Право Брэндона; сейчас вам нужно будет выполнить пользовательскую работу, чтобы получить синий стиль, что несколько расстраивает, поскольку оно пронизано новым руководством по дизайну.

К сожалению, вы не можете ссылатьсяWidget.Holo.Light.TextView.ListSeparator как родительский элемент пользовательского стиля, потому что он является частным.

Но если вас интересует только серая линия, вы можете использовать встроенный стиль Android:

style="?android:attr/listSeparatorTextViewStyle"

Это, по крайней мере, приведет вас к серой линии, стиль всех заглавных букв:

enter image description here

Ответ Брэндона приведет вас к пользовательскому синему стилю.

К вашему сведению, если вы хотите создать подкласс точно из текущего стиля Android (v15) для разделителей списков, комбинированные стили, используемые в Android дляWidget.TextView.ListSeparator а такжеWidget.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>

Вы должны будете скопировать чертежи в свои собственные каталоги, поскольку они являются частными.

Решение Вопроса

Итак, вот что я в итоге использовал:

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

Где @ drawable / 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>

И @ color:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="emphasis">#31b6e7</color>
    <color name="bg_gray">#cecbce</color>
</resources>
 20 дек. 2012 г., 18:59
Это не заставляет синюю линию выделяться над текстом ниже, например, в GridLayout с TextView ниже. Я предполагаю, что это потому, что они не используют TextViews на скриншоте. Каким должно быть правильное поведение?
 27 февр. 2013 г., 15:16
Советы для новичков: верхний код должен быть в res / values / sectionHeader.xml. Часть @colors должна находиться в res / values / colors.xml. Использование: set style = & quot; @ style / sectionHeader & quot; на текстовое представление, где вы хотите этот заголовок. Используйте маржу = & quot; 15dp & quot; на этом текстовом представлении
 07 сент. 2013 г., 21:17
Это близко, но вы захотите немного изменить его, как стиль в ответе Энни: textStyle, выделенный жирным шрифтом. paddingLeft равен 8 dp вместо 4, и я бы сделал высоту рисоваемого элемента 1 dp вместо 2. Кроме того, добавьте paddingBottom, равный 8 dp.

Я говорю, чтобы нарисовать линию, просто используйте вид с установленной высотой 1дп или около того. Вы можете установить цвет, используя атрибут фона

Ваш ответ на вопрос