我正在尝试自定义DialogFragment的一些样式。
我用以下内容更改了标题的颜色:
TextView title = (TextView)getDialog().findViewById( android.R.id.title );
title.setTextColor( getResources().getColor( R.color.base_app_color ) );
现在我需要的是改变标题的背景颜色和底线颜色。
有谁知道哪些是android.R.id。???或者我如何归档它?
答案 0 :(得分: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>
这些区域可以是颜色或绘图,为了理解它们是什么,我将你重定向到a blog post I wrote on the subject(第5部分),解释你如何能够主题化所有内容。
答案 1 :(得分:3)
如果默认对话框不能满足您的需求,您最好提供自己的自定义布局。然后,您可以在XML中使其完全符合您的要求 这在文档中有很好的解释(参见Creating a Custom Layout)