【发布时间】:2016-06-20 07:08:15
【问题描述】:
我正在尝试自定义 AlertDialog 按钮的强调色。但它似乎从系统继承了颜色并没有受到任何影响。这是我的风格/主题。
<color name="actionable_items">#0574ac</color> <!-- it is blue color -->
<style name="LLDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--buttons color-->
<item name="colorAccent">@color/actionable_items</item>
<!--item RadioButton or CheckBox color-->
<item name="colorControlActivated">@color/actionable_items</item>
<item name="colorPrimary">@color/actionable_items</item>
<item name="colorPrimaryDark">@color/actionable_items</item>
<item name="android:listChoiceIndicatorMultiple">@color/actionable_items</item>
<item name="android:listChoiceIndicatorSingle">@color/actionable_items</item>
</style>
这是我尝试构建 Alertdialog 的代码。
final CustomPopupBuilder removePlaceDialog = new CustomPopupBuilder(new ContextThemeWrapper(context,
R.style.LLDialog));
removePlaceDialog.setTitle(getString(R.string.delete_place, placeName));
removePlaceDialog.setMessage(getString(R.string.delete_place_message));
removePlaceDialog.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
....
....
}
});
removePlaceDialog.setNegativeButton(R.string.cancel, null);
removePlaceDialog.create().show();
最终的 AlertDialog 没有具有相同文本颜色的按钮。文本颜色类似于绿色。似乎它是从系统继承颜色而不是自定义主题。 这是图片:
EDIT1:
我尝试使用AlertDialog.Builder,但结果相同。
final AlertDialog.Builder removePlaceDialog = AlertDialog.Builder(new ContextThemeWrapper(context,
R.style.LLDialog));
removePlaceDialog.setTitle(getString(R.string.delete_place, placeName));
removePlaceDialog.setMessage(getString(R.string.delete_place_message));
removePlaceDialog.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
....
....
}
});
removePlaceDialog.setNegativeButton(R.string.cancel, null);
removePlaceDialog.create().show();
编辑2:
我还尝试更改对话框的强调色,但我没有看到该颜色:
<style name="LLDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--buttons color-->
<item name="colorAccent">#990000</item>
...
...
</style>
即使这样也不会改变按钮文本的颜色 :(.
【问题讨论】:
-
为什么你使用
CustomPopupBuilder而不是你可以使用默认的AlertDialog..!! -
@jankigadhiya 我使用了 AlertDialog 但结果相同。它没有根据我的主题/样式自定义 alertDialog。
标签: android android-alertdialog android-theme