gpt4 book ai didi

android - 如何更改 Android 警报对话框的背景?

转载 作者:IT王子 更新时间:2023-10-28 23:31:26 31 4
gpt4 key购买 nike

我在我的应用程序中使用了 AlertDialog 类。默认情况下,这些警报对话框具有透明背景。我正在尝试使用不透明的背景,但非常不成功。这些是我的风格:

<style name="MyOpaqueActivity" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/my_background</item>
<item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item>
</style>

<style name="MyOpaqueAlertDialog" parent="@android:style/Theme.Dialog.Alert">
<item name="android:background">#454545</item>
<item name="android:windowBackground">@drawable/my_background</item>
<item name="android:popupBackground">@drawable/my_background</item>
</style>

我成功地为整个 Activity 应用了“MyOpaqueActivity”样式(窗口背景更改为“my_background”),但它不适用于这些 Activity 中的警报对话框。 “alertDialogStyle”属性和我的“MyOpaqueAlertDialog”样式似乎没有任何效果。

那么如何更改这些警报对话框的背景呢?

最佳答案

你的方法行不通。似乎 AlertDialog(和 Builder)对主题进行了硬编码,并且在任何地方都不尊重 alertDialogStyle:

protected AlertDialog(Context context) {
this(context, com.android.internal.R.style.Theme_Dialog_Alert);
}

public Builder(Context context) {
this(context, com.android.internal.R.style.Theme_Dialog_Alert);
}

他们得出了相同的结论here .

从 AlertDialog 派生的自定义对话框类调用 protected 构造函数 AlertDialog(context, R.style.MyOpaqueAlertDialog) 将是一种解决方法。

在最新的 android 源代码中,有一个新的用于 AlertDialog.Builder 的公共(public)构造函数,它采用主题参数。不幸的是,它还没有发布(也许在 Gingerbread 中?)。

关于android - 如何更改 Android 警报对话框的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3118601/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com