Android支持警报对话框更改标题背景颜色?

时间:2016-01-06 12:06:35

标签: android android-fragments android-dialogfragment android-styles

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(Material Design)上的对话框

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

我希望标题是color / colorPrimary(橙色)背景。 enter image description here

3 个答案:

答案 0 :(得分:1)

在最新的API级别中,警报对话框没有单独的标头。它有一个单独的视图和一个分隔标题文本和消息的分隔符。您可以更改标题文本和消息文本颜色以及分隔符颜色。此外,您可以更改整个警报对话框的背景,而不仅仅是其标题部分。

作为一种解决方法,您可以做的是:不要设置标题文本,而是使用带有文本的图像,然后是消息。这样分频器将消失,图像看起来像标题。 基本上是一个自定义警报对话框。

检查this post,了解如何在alertdialogs中添加图片。

答案 1 :(得分:0)

您可以为警报对话框创建自定义视图。

false

答案 2 :(得分:0)

您可以查看此资料对话框here。它非常易于使用,也非常易于定制。