【问题标题】:ProgressDialog is not showing circleProgressDialog 没有显示圆圈
【发布时间】:2017-01-06 09:39:33
【问题描述】:

我的片段中有一个progressDialog。我需要的是显示小圆圈。但它只显示消息。想死我了

final ProgressDialog progressDialog = new ProgressDialog(getActivity());
        progressDialog.setIndeterminate(true);
        progressDialog.setMessage("My message");
        progressDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Large);
        progressDialog.show();

片段 - 方法显示进度对话框由您的帮助编辑

private void loginEmail() {

        showProgressDialog();
        FactoryAPI.getInstanceLogin().login("test@test.cz", "heslo123").enqueue(new Callback<UserResponse>() {
            @Override
            public void onResponse(Call<UserResponse> call, Response<UserResponse> response) {
                if (response.isSuccessful()) {
                    user = response.body().getUser();
                    startActivity();
                    progressDialog.dismiss();
                } else {
                    Toast.makeText(getContext(), R.string.email_password_is_not_right, Toast.LENGTH_LONG).show();
                }
            }

            @Override
            public void onFailure(Call<UserResponse> call, Throwable t) {
                Log.e("error", "error");
            }
        });
    }

【问题讨论】:

  • 因为这个 progressDialog.setMessage("My message"); 消息正在显示。如果你想在圈子里,你可以使用 ProgressBar
  • progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);替换progressDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Large);
  • progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER‌​);默认情况下它已经是一个圆圈。无需添加此行
  • 你想用popupDialog还是不用popupDialog来显示循环进度?请发布您的片段代码。

标签: android fragment progressdialog android-progressbar


【解决方案1】:

只需将此行 progressDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Large) 更改为 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER)

private void loginEmail() {

    final ProgressDialog progressDialog = new ProgressDialog(getActivity);
    progressDialog.setIndeterminate(true);
    progressDialog.setMessage("My message");
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.show();

    FactoryAPI.getInstanceLogin().login("test@test.cz", "heslo123").enqueue(new Callback<UserResponse>() {
        @Override
        public void onResponse(Call<UserResponse> call, Response<UserResponse> response) {

            if(progressDialog.isShowing())
                 progressDialog.dismiss();

            if (response.isSuccessful()) {
                user = response.body().getUser();
                startActivity();
            } else {
                Toast.makeText(getContext(), R.string.email_password_is_not_right, Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onFailure(Call<UserResponse> call, Throwable t) {

            if(progressDialog.isShowing())
                 progressDialog.dismiss();

            Log.e("error", "error");
        }
    });
}

STYLE_SPINNER -

创建一个带有圆形旋转进度条的 ProgressDialog。

STYLE_HORIZONTAL -

创建一个带有水平进度条的 ProgressDialog。

参考:ProgressDialog

【讨论】:

  • 我已经添加了那行,但没有任何改变
  • 谢谢,但圆圈在那里。我不知道我做错了什么
【解决方案2】:

使用ProgressBar,而不是ProgressDialog
例子: 把它放在你想要放置 ProgressBar 的布局文件中:

<ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:layout_gravity="center"
        style="@style/Base.Widget.AppCompat.ProgressBar" />

然后在你想要显示的地方调用progressBar.setVisiblity(view.visible),当你加载完你想要的内容时隐藏它。

【讨论】:

  • 虽然这可能是正确的,但它不是一个好的答案。试着举一些例子。
  • @TreviAwater 改变了答案。
  • 我试过 ProgressBar 但它是旧版本。我想要现代版(材料设计
  • @Stepan 请发布您的完整 xml 布局
【解决方案3】:

只需删除

  progressDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Large);

默认情况下,“加载”图标是圆圈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2021-11-17
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多