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

回到顶部