Стиль AlertDialog - как изменить стиль (цвет) заголовка, сообщения и т. Д.

1115 Я ломаю голову над этим совсем немного. Что мне нужно сделать, это изменить стиль всех AlertDialog в моем приложении для Android - фон диалога должен быть белым, а текст - черным. Я пытался создать много стилей, тем и применений из кода, манифеста и т. Д., Но безуспешно, в отношении цветов текста внутри AlertDialog. Прямо сейчас у меня есть самые простые коды, установленные следующим образом:

Манифест:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

styles.xml:

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:alertDialogStyle">@style/DialogStyle</item>
</style>

<style name="DialogStyle" parent="@android:style/Theme.Dialog">
    <!-- changing these background stuff works fine -->
    <item name="android:bottomBright">@android:color/white</item>
    <item name="android:bottomDark">@android:color/white</item>
    <item name="android:bottomMedium">@drawable/dialog_footer_bg</item>
    <item name="android:centerBright">@android:color/white</item>
    <item name="android:centerDark">@drawable/dialog_body_bg</item>
    <item name="android:centerMedium">@android:color/white</item>
    <item name="android:fullBright">@color/orange</item>
    <item name="android:fullDark">@color/orange</item>
    <item name="android:topBright">@color/green</item>
    <item name="android:topDark">@drawable/dialog_header_bg</item>

Элементы, перечисленные ниже, не работают (пожалуйста, прочитайте комментарии, которые я поместил над каждым элементом):

    <!-- panelBackground is not getting set to null, there is something squarish around it -->
    <item name="android:panelBackground">@null</item>

    <!-- Setting this textColor doesn't seem to have any effect at all. Messages, title, button text color, whatever; nothing changes. -->
    <item name="android:textColor">#000000</item>

    <!-- Also tried with textAppearance, as follows. Didn't work -->
    <item name="android:textAppearance">?android:attr/textColorPrimaryInverse</item>

    <!-- Also tried changing textAppearancePrimary, to no avail -->
    <item name="android:textColorPrimary">#000000</item>

    <!-- Also need to change the dialog title text, tried it as follows, dint work: -->
    <item name="android:windowTitleStyle">@style/DialogWindowTitle</item>
</style>

DialogWindowTitle определяется следующим образом:

<style name="DialogWindowTitle">
    <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
</style>

Так что ничего из этого не работает. Может кто-нибудь сказать мне, что я могу делать неправильно, и как я могу:

  1. Изменить цвет текста для сообщений (текст содержимого)
  2. Изменить цвет текста заголовка
  3. Удалите фон панели

Примечание. Мне нужно поддерживать API 8 (2.2) и выше. Кроме того, я рассмотрел большинство связанных вопросов здесь и в группах Google, но не могу понять, хотя у меня есть ощущение, что оно прямо у меня под носом!

Редактировать: добавить скриншот:

AlertDialog not themed as expected

40
задан Aswin Kumar 25 April 2013 в 02:30
поделиться