Android 如何更改DialogFragment标题背景颜色和底线颜色

Android 如何更改DialogFragment标题背景颜色和底线颜色,android,android-alertdialog,android-theme,Android,Android Alertdialog,Android Theme,我正在尝试定制DialogFragment的一些样式 我已将标题的颜色更改为: TextView title = (TextView)getDialog().findViewById( android.R.id.title ); title.setTextColor( getResources().getColor( R.color.base_app_color ) ); 现在我需要的是改变标题的背景颜色和底线颜色 有人知道哪些是android.R.id吗。???或者我怎么能把它存档 如果默认

我正在尝试定制DialogFragment的一些样式

我已将标题的颜色更改为:

TextView title = (TextView)getDialog().findViewById( android.R.id.title );
title.setTextColor( getResources().getColor( R.color.base_app_color ) );
现在我需要的是改变标题的背景颜色和底线颜色

有人知道哪些是android.R.id吗。???或者我怎么能把它存档


如果默认对话框不能满足您的需要,您最好提供自己的自定义布局。然后,您可以使其在XML中完全符合您的需要。

这在文档中有很好的解释(请参阅)

如果默认对话框不能满足您的需要,您最好提供自己的自定义布局。然后,您可以使其在XML中完全符合您的需要。

这在文档中有很好的解释(请参见)

在创建对话框后,您实际上可以找到分隔符:

AlertDialog dialog = builder.show();

// Set title divider color
int titleDividerId = getResources().getIdentifier("titleDivider", "id", "android");
View titleDivider = dialog.findViewById(titleDividerId);
if (titleDivider != null)
    titleDivider.setBackgroundColor(getResources().getColor(android.R.color.holo_purple));
自定义标题的背景稍微复杂一些。。。您需要在主题中定义一个
alertDialogStyle
定义如何绘制对话框的每个区域。例如:

<style name="Theme.Yours" parent="@android:style/Theme.Holo">
    ...
    <item name="android:alertDialogStyle">@style/AlertDialog_Yours</item>
</style>

<style name="AlertDialog_Yours">
    <item name="android:fullDark">...</item>
    <item name="android:topDark">...</item>
    <item name="android:centerDark">...</item>
    <item name="android:bottomDark">...</item>
    <item name="android:fullBright">...</item>
    <item name="android:topBright">...</item>
    <item name="android:centerBright">...</item>
    <item name="android:bottomBright">...</item>
    <item name="android:bottomMedium">...</item>
    <item name="android:centerMedium">...</item>
</style>

...
@样式/警报对话框\您的
...
...
...
...
...
...
...
...
...
...

这些区域可以是颜色或可绘制的,为了理解它们是什么,我将您重定向到(第5部分),解释如何为所有内容设置主题。

在创建对话框后,您实际上可以找到分隔符:

AlertDialog dialog = builder.show();

// Set title divider color
int titleDividerId = getResources().getIdentifier("titleDivider", "id", "android");
View titleDivider = dialog.findViewById(titleDividerId);
if (titleDivider != null)
    titleDivider.setBackgroundColor(getResources().getColor(android.R.color.holo_purple));
自定义标题的背景稍微复杂一些。。。您需要在主题中定义一个
alertDialogStyle
定义如何绘制对话框的每个区域。例如:

<style name="Theme.Yours" parent="@android:style/Theme.Holo">
    ...
    <item name="android:alertDialogStyle">@style/AlertDialog_Yours</item>
</style>

<style name="AlertDialog_Yours">
    <item name="android:fullDark">...</item>
    <item name="android:topDark">...</item>
    <item name="android:centerDark">...</item>
    <item name="android:bottomDark">...</item>
    <item name="android:fullBright">...</item>
    <item name="android:topBright">...</item>
    <item name="android:centerBright">...</item>
    <item name="android:bottomBright">...</item>
    <item name="android:bottomMedium">...</item>
    <item name="android:centerMedium">...</item>
</style>

...
@样式/警报对话框\您的
...
...
...
...
...
...
...
...
...
...

这些区域可以是颜色或可绘制的,为了理解它们是什么,我将您重定向到(第5部分),解释如何为所有内容设置主题。

也许您可以为此使用主题?您可能是对的,但我不知道这些项目的名称,是吗?此外,我可以使用不同的布局,但如果有可能的话,我很想改变这些颜色。谢谢你@GumboI(也许)找到了分隔符的ID:
android.R.ID.titleDivider
让我知道它是否有效。谢谢,但是这个ID不存在android.R.ID.titledividermabe你可以为此使用一个主题吗?你可能是对的,但我不知道这些项目的名称,是吗?此外,我可以使用不同的布局,但如果有可能的话,我很想改变这些颜色。谢谢@GumboI(可能)找到了分隔符的ID:
android.R.ID.titleDivider
请告诉我它是否有效。谢谢,但该ID不存在android.R.ID.titleDivider谢谢。这就是我要找的@DadouThanks。这就是我要找的@Dadou