进度对话框没有填充

时间:2015-10-28 03:42:20

标签: android android-layout

我在Fragment

中使用了一个简单的Progress Dialog生成器方法
public void showProgressDialog(int messageId){
    String message = getString(messageId);
    mProgressDialog = ProgressDialog.show(this.getActivity(), "", message, true);
}

我的进度对话框如下所示,没有正常的填充: Progress Dialog

如何在进度条周围设置默认填充?

编辑:添加themes.xml文件

<resources xmlns:tools="http://schemas.android.com/tools">

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
</style>

<style name="AppTheme" parent="AppBaseTheme">

    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <item name="android:windowContentOverlay">@null</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>

    <!-- Toolbar Theme / Apply white arrow -->
    <item name="colorControlNormal">@android:color/white</item>
    <item name="actionBarTheme">@style/AppTheme.ActionBarTheme</item>

    <!-- Material Theme -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/status_bar_color</item>
    <item name="colorAccent">@color/accent_color</item>

    <item name="android:navigationBarColor" tools:targetApi="21">@color/navigationBarColor</item>
    <item name="android:fitsSystemWindows">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="21">true</item>

</style>

<style name="AppTheme.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">
    <!-- White arrow -->
    <item name="colorControlNormal">@android:color/white</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@color/drawerArrowColor</item>
</style>
</resources>
  

此类在API级别26中已弃用.ProgressDialog是一种模式   对话框,阻止用户与应用程序交互。代替   使用这个类,你应该使用像这样的进度指示器   ProgressBar,可以嵌入到您应用的UI中。或者,   您可以使用通知来通知用户任务的进度。有关详细信息Link

4 个答案:

答案 0 :(得分:4)

这是我的解决方法,为Dialog创建一个新主题。希望它能帮到你!

   <style name="ProgressDialogTheme" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:fitsSystemWindows">false</item>
        <item name="android:clipToPadding">false</item>
    </style>

    ProgressDialog progressDialog = new ProgressDialog(context, R.style.ProgressDialogTheme);
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.setMessage(content);
    progressDialog.show();

答案 1 :(得分:1)

试试这种方式

 pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Loading...");
            pDialog.setIndeterminate(true);
           // (To customize your dialog)pDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.custom_progress));
            pDialog.setCancelable(false);
            pDialog.show();

答案 2 :(得分:0)

Yuu可以尝试以下代码:

        ProgressDialog dialog = new ProgressDialog(getActivity(), getTheme());
        dialog.setTitle(getString(R.string.pleaseWait));
        dialog.setMessage(getString(R.string.message));
        dialog.setIndeterminate(true);
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

您可以为progressdialog设置不同的主题..

  

1)尝试使用ProgressDialog.THEME_HOLO_DARK而不是getTheme()。

     

2)或者您可以设置自定义主题。见link

了解更多详情。请参阅此link

希望它会对你有所帮助。

答案 3 :(得分:0)

在我的应用主题中使用<item name="android:fitsSystemWindows">true</item>时遇到了同样的问题。删除这个项目对我有帮助(实际上,只是在代码的其他部分移动了它)。