【问题标题】:Progress Dialog issue in below android 4.4.4android 4.4.4 以下的进度对话框问题
【发布时间】:2015-07-16 08:01:17
【问题描述】:

我在我的 android 应用程序中使用进度对话框。它在 android 5.0+ 上看起来不错。但在 android 4.4.4 以下显示两层。我附上了屏幕截图。我正在使用样式

<style name="AlertDialogCustom" parent="Theme.AppCompat.Dialog">
    <item name="colorAccent">#FFFFFF</item>
        <item name="android:textColorPrimary">#CCCCCC</item>
        <item name="android:background">#E43F3F</item>
</style>

和进度对话框

final ProgressDialog progressDialog = new ProgressDialog(SplashActivity.this,
                    R.style.AlertDialogCustom);
            progressDialog.setIndeterminate(true);
            progressDialog.setMessage("Authenticating...");
            progressDialog.show();

如何解决这个问题。请给我建议。

【问题讨论】:

  • 尝试在样式中添加&lt;item android:windowBackground="@android:color/transparent" /&gt;
  • 你有没有解决这个问题

标签: android styles progressdialog


【解决方案1】:

您应该替换从

导入的内容
import android.app.AlertDialog;

到:

import android.support.v7.app.AlertDialog;

希望有帮助!

【讨论】:

  • android.support.v7.app.AlertDialog 放在哪里?
  • @IgorVuković 替换文件顶部的导入行
  • 我没有使用 AlertDialog,因为它在问题出在 ProgressDialog 中的问题中声明了
  • 这不是对问题的回答,问题在于导入 android.support.v7.app 中未包含的 ProgressDialog;有什么建议吗?您的解决方案适用于 AlertDialog。
【解决方案2】:

也许您可以将这些添加到您的样式中:

<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>

在我的情况下效果很好。

【讨论】:

    【解决方案3】:

    我有同样的情况(在 API 16 中测试),将导入更改为

    import android.support.v7.app.AlertDialog;
    

    或添加

    <item android:windowBackground="@android:color/transparent" />
    

    这种风格不适合我。

    我已经创建了values-v21 具有默认材质样式的文件夹并添加了

     <item name="android:background">@android:color/transparent</item>
     <item name="android:windowBackground">@android:color/transparent</item>
    

    values 文件夹中的style.xml 文件。

    【讨论】:

      【解决方案4】:

      您应该为 Android

      <style name="AppTheme.AlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
          <item name="colorPrimary">@color/colorPrimary</item>
          <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
          <item name="colorAccent">@color/colorAccent</item>
      </style>
      
      <style name="AppTheme.ProgressDialog" parent="AppTheme.AlertDialog">
          <item name="android:windowBackground">@android:color/transparent</item>
      </style>
      

      然后,您必须应用 ProgressDialog 样式以使其正常工作:

          if (Build.VERSION.SDK_INT < 21)
          {
              mProgress = new ProgressDialog(mActivity, R.style.AppTheme_ProgressDialog);
          }
          else
          {
              mProgress = new ProgressDialog(mActivity);
          }
      ....
      

      希望它会有所帮助。

      【讨论】:

        【解决方案5】:

        我通过外部库 https://github.com/afollestad/material-dialogs 修复了这个问题 .简单又好看。

        new MaterialDialog.Builder(this)
            .title(R.string.progress_dialog)
            .content(R.string.please_wait)
            .progress(true, 0)
            .progressIndeterminateStyle(true)
            .show();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多