我有以下对话框:
这是使用以下代码创建的:
我们得到了以下结果:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Random random = new Random();
// 0 or 1.
final int value = random.nextInt(2);
final int title = R.string.we_love_you_0;
final int content = R.string.rate_us_with_5_stars_review_0;
final AlertDialog dialog = new AlertDialog.Builder(this.getActivity())
.setTitle(title)
.setMessage(content)
// Add action buttons
.setPositiveButton(R.string.rate_5_stars, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNeutralButton(R.string.later, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.create();
dialog.setCanceledOnTouchOutside(false);
return dialog;
}
为了吸引用户关注积极的按钮(五星好评),我们倾向于:
- 使用白色按钮文本颜色
- 使用蓝色按钮背景颜色
我们在返回dialog
之前添加以下代码:
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface d) {
Button positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
positiveButton.setTextColor(rateAppDialogPositiveButtonTextColor);
positiveButton.setBackgroundColor(rateAppDialogPositiveButtonBackgroundColor);
}
});
我们得到了以下结果:
但这并不是我们想要的,因为:
- 积极按钮失去了其默认的边距和填充信息。
- 积极按钮按下时的波纹选择器行为消失了。
这是与正常按钮按下时的比较。在我们的情况下,当我们按下积极按钮时,没有任何视觉变化。
有没有一种适当的方法可以更改材料设计对话框积极按钮的背景,而不会失去其默认的边距、填充和波纹选择器行为?