如何更改警报对话框标题分隔符颜色android

时间:2013-03-07 12:40:04

标签: android colors dialog styles android-alertdialog

我想在警告对话框中设置样式或更改标题标题的分隔颜色。我搜索这个问题,我想很多人都在寻找这个。但我仍然无法找到正确的解决方案。我想改变以下内容。 Blue header divider

4 个答案:

答案 0 :(得分:15)

你可以通过一个非常简单的黑客来改变AlertDialog标题的颜色:

public static void brandAlertDialog(AlertDialog dialog) {
    try {
        Resources resources = dialog.getContext().getResources();
        int color = resources.getColor(...); // your color here

        int alertTitleId = resources.getIdentifier("alertTitle", "id", "android");
        TextView alertTitle = (TextView) dialog.getWindow().getDecorView().findViewById(alertTitleId);
        alertTitle.setTextColor(color); // change title text color

        int titleDividerId = resources.getIdentifier("titleDivider", "id", "android");
        View titleDivider = dialog.getWindow().getDecorView().findViewById(titleDividerId);
        titleDivider.setBackgroundColor(color); // change divider color
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

答案 1 :(得分:4)

分频器颜色: -

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.dialog)
   .setIcon(R.drawable.ic)
   .setMessage(R.string.dialog_msg);
Dialog d = builder.show();
int dividerId = d.getContext().getResources().getIdentifier("android:id/titleDivider", null, null);
View divider = d.findViewById(dividerId);
divider.setBackgroundColor(getResources().getColor(R.color.my_color));

答案 2 :(得分:0)

从消息来源来看,似乎这种颜色是硬编码的。我认为这是一个错误,它应该是可定制的imho。

有一个简单的解决方法:使用setStyle(DialogFragment.STYLE_NO_TITLE, R.style.myStyle);,并编写一个简单的线性布局,其中第一个项目是您的标题。

答案 3 :(得分:-1)

Stretch