Android:AlertDialog背景根据API
显示为不同。我刚刚注意到,我在Galaxy S8 +(API 24)上创建和测试的AlertDialogs在我测试Galaxy Note 4(API 19)时出现了不同。我为对话框创建了一个自定义样式,它看起来就像在旧API上一样,显示了默认警报对话框和自定义主题。Android:AlertDialog背景根据API
这里是证明了该图片。
对话框S8 +出现如预期
对话框注4有我的自定义背景和默认的
这里是我的风格和AlertDialog代码
AlertDialog风格都
<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">#0053f9</item>
<item name="android:textColor">#000000</item>
<item name="android:windowBackground">@drawable/background_color_blue_black_border</item>
<item name="buttonBarStyle">@style/Widget.AppCompat.ButtonBar</item>
<item name="buttonBarButtonStyle">@style/customButtonForMyDialogTheme</item>
</style>
AlertDialog代码
android.app.AlertDialog.Builder a_builder = new android.app.AlertDialog.Builder(RemoteControlBubblePillar.this, R.style.MyDialogTheme); a_builder.setMessage("Do you want to turn on the Bubble Pillar ?")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
//Do some stuff
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
android.app.AlertDialog alert = a_builder.create();
alert.setTitle("Bubble Pillar Is Turned Off");
alert.show();
我试着将背景设置为风格透明以及在代码中将其设置为透明,但目前为止没有任何效果。任何想法为什么发生这种情况?
回答:
使用
android.support.v7.app.AlertDialog
,而不是
android.app.AlertDialog
在对话框中设置您的自定义视图.Below就是一个例子。
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); LayoutInflater inflater = this.getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.custom_dialog, null);
dialogBuilder.setView(dialogView);
dialogBuilder.setTitle("Custom dialog");
dialogBuilder.setMessage("Enter text below");
dialogBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//do something with edt.getText().toString();
}
});
dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//pass
}
});
AlertDialog b = dialogBuilder.create();
b.show();
回答:
那是因为你是基于API使用AlertDialog预期的行为。您可以尝试使用android.support.v7.app.AlertDialog
而不是android.app.AlertDialog
。或使用自定义警告对话框库像材料对话框
以上是 Android:AlertDialog背景根据API 的全部内容, 来源链接: utcz.com/qa/259159.html