我使用以下代码来设置AlertDialogs主题。
Resources resources = dialog.getContext().getResources();
int color = resources.getColor(R.color.green_theme); // 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
它的效果很好,除了我有一个带有消息但没有标题的AlertDialog的情况。似乎只有第三个视图显示在这种情况下,它也需要设置颜色。我只是不知道这个视图的ID是什么。有谁知道吗?
我正在谈论的视图在下图中的白色矩形中突出显示。
答案 0 :(得分:3)
我想没有人真正读过我的问题。
无论如何,如果其他人有他的问题,这就是答案:
int titleDividerTopId = resources.getIdentifier("titleDividerTop", "id", "android");
View titleDividerTop = dialog.getWindow().getDecorView().findViewById(titleDividerTopId);
titleDividerTop.setBackgroundColor(color);
答案 1 :(得分:0)
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
那应该摆脱标题。
答案 2 :(得分:0)
在清单文件的application
标记中,只需将整个应用程序的主题更改为透明,如下所示:
您的对话框中不会显示您的蓝线。
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >