Цвет подчеркивания заголовка AlertDialog - PullRequest
2 голосов
/ 11 февраля 2012

Есть ли способ изменить цвет подчеркивания заголовка в AlertDialog?Я уже изменил цвет заголовка с помощью определения пользовательского стиля (см. Ниже), но я не нашел никакого атрибута xml для подчеркивания.

    <style name="CustomTitle" parent="@android:style/TextAppearance.Holo">
    <item name="android:textColor">@color/green</item>
    </style>

Я использую Android 4.

Редактировать: вот как я создаю AlertDialog

        Builder ad = new AlertDialog.Builder(new ContextThemeWrapper(this,
            R.style.DialogPrivate));
    ad.setTitle("Custom Dialog");

    ad.setMessage("blaaaaa");
    ad.setPositiveButton("test", null);
    ad.setNegativeButton("test2", null);
    ad.show();

И как это выглядит на данный момент Снимок экрана

Ответы [ 3 ]

2 голосов
/ 11 апреля 2013

Подчеркивание - это фактически объект View, цвет фона которого по умолчанию установлен на голо-синий (по крайней мере, на мармелад).

Вы можете увидеть макет диалоговых окон предупреждений по адресу: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/alert_dialog_holo.xml#L58. В частности, представление titleDivider:

<View android:id="@+id/titleDivider"
        android:layout_width="match_parent"
        android:layout_height="2dip"
        android:visibility="gone"
        android:background="@android:color/holo_blue_light" />

Это прискорбно, потому что это означает, что нет способа настроить цвет представления без какого-нибудь уродливого, хакерского кода, такого как:

void changeUnderlineColor(AlertDialog d, int color) {
    final ViewGroup v = (ViewGroup) d.getWindow().findViewById(android.R.id.content);
    v.findViewById(getResources().getIdentifier("titleDivider", "id", "android")).setBackgroundColor(color);
}

Это работает на Jellybean с использованием темы holo_light, но это почти наверняка плохая идея. Если вы действительно хотите изменить цвет линии, похоже, вам нужно создать полностью собственный диалог самостоятельно

1 голос
/ 10 октября 2012

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

0 голосов
/ 11 февраля 2012

попробуйте использовать android: textColorLink = "# 783302"

...