我在我的应用中使用主题"Theme.AppCompat.Light.NoActionBar"
。
我想让我的一些对话框应用黑暗的AppCompat主题。
所以,我为对话框创建了样式
<style name="MyDialogStyle" parent="Theme.AppCompat.Dialog">
</style>
(当父级是“Theme.AppCompat.Dialog.Alert”时同样的问题) 一个没有版本约束的xml文件 和版本为api 21约束的xml文件中的相同样式。 调用我使用此功能的对话框:
public void showSimplestDialog(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.MyDialogStyle);
AlertDialog alertDialog = builder.setTitle("title")
.setMessage("message ")
.create();
alertDialog.show();
}
api 21+的结果看起来很好
但是在api 17中我得到了一些我无法摆脱的重复背景(即使我尝试将自定义视图应用于使用builder.setView(MyView)的对话框
答案 0 :(得分:1)
确保您必须import android.support.v7.app.AlertDialog
这件事。
然后以这种方式创建
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.DialogStyle);
builder.setTitle("Title");
builder.setMessage("Abc ...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
并在styles.xml
<style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">#FFCC00</item>
<item name="android:textColorPrimary">#FFFFFF</item>
<item name="android:background">#5fa3d0</item>
</style>