gpt4 book ai didi

android - 进度对话框在 Pre-lollipop 设备上奇怪地出现

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:22 26 4
gpt4 key购买 nike

我在前 Lollipop 设备上的进度对话框如下所示: enter image description here

看到那个双窗了吗?我不知道为什么会这样。

代码

  1. 像这样初始化进度对话框:

    progressDialog = new ProgressDialog(context);
    progressDialog.setMessage(messsage);
    progressDialog.setIndeterminate(true);
    progressDialog.setCancelable(false);
  2. 在 values values-21 中定义了这样的样式:

<style name="AlertDialog.Theme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:textColorPrimary">@color/black</item>
<item name="android:background">@color/white</item>
<item name="android:textColor">@color/black</item>
<item name="colorAccent">@color/orange</item>
<item name="colorPrimary">@color/orange</item>
<item name="colorPrimaryDark">@color/darkerorance</item>
</style>

  1. 在谷歌上搜索后,我在我的主题中添加了这样的警报样式:

<item name="android:dialogTheme">@style/AlertDialog.Theme</item>
<item name="dialogTheme">@style/AlertDialog.Theme</item>
<item name="android:alertDialogTheme">@style/AlertDialog.Theme</item>
<item name="alertDialogTheme">@style/AlertDialog.Theme</item>

并且主题从 Theme.AppCompat.Light.NoActionBar 扩展而来。

这在 Lollipop 及更高版本 上效果很好,但在 pre-lollipop 上看起来像图像。任何人都可以在这里帮忙并告诉我我做错了什么吗?

最佳答案

我回复的有点晚,但这就是我解决问题的方式。
我创建了一个单独的 v-14 styles.xml 并定义了一个样式,如下所示

values-v14/styles.xml

<style name="AlertDialog.Holo" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:textColorPrimary">@color/black</item>
<item name="android:textColor">@color/black</item>
<item name="android:textAppearance">@style/Helvetica.Regular</item>
<item name="android:windowTitleStyle">@style/DialogTitleStyle</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>

P.S - textAppearance 和 windowTitleStyle 是我为自定义字体创建的样式。

使用的常规 (values/styles.xml) 警报对话框样式是:

<style name="AlertDialog.Theme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:textColorPrimary">@color/black</item>
<item name="android:textColor">@color/black</item>
<item name="colorAccent">@color/zifycolor</item>
<item name="colorPrimary">@color/zifycolor</item>
<item name="colorPrimaryDark">@color/zifycolorDarker</item>
<item name="android:windowTitleStyle">@style/DialogTitleStyle</item>
<item name="buttonBarButtonStyle">@style/AlertDialogButtonStyle</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

最后显示一个进度对话框:

/**
* Create a progress dialog. The appropriate theme gets applied.
*
* @param context valid context with a window
* @param messsage message to show
* @return {@code ProgressDialog} instance
*/
public static ProgressDialog createProgressDialog(@NonNull final Context context, @NonNull String messsage) {
ProgressDialog progressDialog;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
progressDialog = new ProgressDialog(context, R.style.AlertDialog_Theme);
else
progressDialog = new ProgressDialog(context, R.style.AlertDialog_Holo);

progressDialog.setMessage(messsage);
progressDialog.setCancelable(false);
return progressDialog;

}

到目前为止效果很好!希望对某人有所帮助。

关于android - 进度对话框在 Pre-lollipop 设备上奇怪地出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34357933/

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