Диалоговое окно с предупреждением о поддержке Android меняет цвет фона заголовка?

color/colorPrimary какой-то оранжевый цвет, я хочу, чтобы он был в заголовке. Но мне удалось легко изменить цвет текста заголовка. Я хотел бы изменить цвет фона заголовка. Это то, что у меня есть до сих пор:

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">

    <item name="android:textColorPrimary">@color/colorPrimary</item>
    <item name="android:windowTitleBackgroundStyle">@style/dialog_title_style</item>
    <item name="android:alertDialogStyle">@style/AlertDialog_Sphinx</item>
    <item name="colorAccent">@color/colorPrimary</item>




</style>
<style name="dialog_title_style" >
    <item name="android:background">@color/colorPrimary</item>
    <item name="android:padding">100dp</item>
</style>

<style name="AlertDialog_Sphinx">
    <item name="android:fullDark">@color/colorPrimary</item>
    <item name="android:topDark">@color/colorPrimary</item>
    <item name="android:centerDark">@color/colorPrimary</item>
    <item name="android:bottomDark">@color/colorPrimary</item>
    <item name="android:fullBright">@color/colorPrimary</item>
    <item name="android:topBright">@color/colorPrimary</item>
    <item name="android:centerBright">@color/colorPrimary</item>
    <item name="android:bottomBright">@color/colorPrimary</item>
    <item name="android:bottomMedium">@color/colorPrimary</item>
    <item name="android:centerMedium">@color/colorPrimary</item>
</style>

public class MyDialogFragment extends DialogFragment {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder=new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle).setTitle("Naslov")
            .setMessage("Poruka......................................................")
            .setIcon(android.R.drawable.ic_menu_help)
            .setPositiveButton("OK",null);
    return builder.create();
  }
}

Я использую версию поддержки AlertDialog. (23.1.0). Таким образом, диалоговое окно больше похоже на диалоговое окно в более новой версии Android (материальный дизайн).

 compile 'com.android.support:appcompat-v7:23.1.0'
 compile 'com.android.support:design:23.1.0'

Я хочу, чтобы заголовок имел фон color/colorPrimary (оранжевый). введите здесь описание изображения


person Vlado Pandžić    schedule 06.01.2016    source источник


Ответы (3)


В последних уровнях API диалоговое окно предупреждения не имеет отдельного заголовка. Он имеет один вид и разделитель, который разделяет текст заголовка и сообщение. Вы можете изменить цвет текста заголовка и текста сообщения, а также цвет разделителя. Кроме того, вы можете изменить фон всего диалогового окна предупреждения, а не только его заголовка.

В качестве обходного пути вы можете сделать следующее: не устанавливайте текст заголовка, а используйте изображение с текстом, за которым следует сообщение. Таким образом, разделитель исчезнет, ​​и изображение будет выглядеть как заголовок. В основном настраиваемый диалог предупреждений.

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

person AndroidMechanic - Viral Patel    schedule 06.01.2016

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

LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.dialog_layout, (ViewGroup) getCurrentFocus());
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialoglayout);
builder.show();
person Febi M Felix    schedule 06.01.2016
comment
Один вариант точно, но мне кажется, что headerBackground:#F56321 проще. Но все варианты укладки пока не помогали. - person Vlado Pandžić; 06.01.2016

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

person Bobby    schedule 06.01.2016
comment
Я постараюсь не использовать какие-либо библиотеки только из-за дизайна. Но на моей веб-странице есть такие диалоги, где заголовок оранжевый, а тело и нижний колонтитул белые. Он подумал, что было бы неплохо сделать что-то подобное. Кроме того, я думал, что это легко изменить, как в Интернете :) - person Vlado Pandžić; 06.01.2016
comment
Я пока не буду пытаться, но если это легко сделать с вашей библиотекой, я бы рассмотрел это как вариант. - person Vlado Pandžić; 06.01.2016
comment
Кажется, здесь нет опции фона заголовка, но вы размещаете здесь рекламу, что хорошо для вашей библиотеки. - person Vlado Pandžić; 06.01.2016
comment
Это не моя библиотека, но посмотрите на пользовательский тематический диалог, который вы можете сделать, это может немного помочь. Если вы не используете сторонние библиотеки, это тоже нормально. - person Bobby; 07.01.2016