Android “进度”对话框在棒棒糖制作前的设备上奇怪地出现
“我在棒棒糖前的设备上的进度”对话框如下所示: 看到那个双层窗户了吗?我不知道为什么会这样 代码Android “进度”对话框在棒棒糖制作前的设备上奇怪地出现,android,progressdialog,android-styles,Android,Progressdialog,Android Styles,“我在棒棒糖前的设备上的进度”对话框如下所示: 看到那个双层窗户了吗?我不知道为什么会这样 代码 正在初始化进度对话框,如下所示: progressDialog = new ProgressDialog(context); progressDialog.setMessage(messsage); progressDialog.setIndeterminate(true); progressDialog.setCancelable(false); 在values和values-21中定义了这
progressDialog = new ProgressDialog(context);
progressDialog.setMessage(messsage);
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
@颜色/黑色
@颜色/白色
@颜色/黑色
@颜色/橙色
@颜色/橙色
@颜色/暗度
不要设置这些对话框的样式,如果你想在lolipop之前的设备中使用材质样式,那么就利用库
它非常容易使用。我的解决方法是为棒棒糖制作前创建一个单独的主题和样式,参数
android:windowBackground
为透明。这删除了后面的第二个背景
<style name="AppCompatAlertDialogStyleNoWindow" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:windowBackground">@color/transparent</item>
</style>
@彩色/透明
然后将此样式添加为棒棒糖前主题的android:alertDialogTheme。我回复有点晚,但这就是我解决问题的方法。
我创建了一个单独的
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>
到目前为止,它工作得很好!希望它能帮助一些人。你的答案不适用于棒棒糖前(在API 19上测试)。但是我找到了解决方案:你需要使用<代码> Android .Vo.V7.App.AdvtReals(在导入设置)我不认为有PrimeScript对话框的支持版本。不确定你的特定用例,但是作为一个通用的UI考虑,你可能想考虑使用加载视图的ViewFlipper(例如,用PrimeScript对话的FrAMLayayOUT)而不是进程对话框。ProgressDialogs正在阻止…因此,如果加载状态挂起或需要一段时间,用户将被阻止执行其他操作。我们是否可以在不使用此库的情况下实现此功能?提到的库是开源的,您显然可以检查代码并尝试实现您自己的。图书馆是为了节省你的时间。为了便于学习,您可以查看仅测试此API 16及以上版本的代码
<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;
}