显示加载/进度指示器最佳方式吗?显示加载/进度指示器最佳方式吗?(Best way to show

2019-05-12 23:53发布

什么是显示正在加载的旋转而应用程序正在等待来自服务器的响应的最佳方式?

可以这样做编程? 所以,我没有加负载微调的xml文件?

Answer 1:

ProgressDialog从Android电子奥利奥弃用。 使用进度条代替

ProgressDialog progress = new ProgressDialog(this);
progress.setTitle("Loading");
progress.setMessage("Wait while loading...");
progress.setCancelable(false); // disable dismiss by tapping outside of the dialog
progress.show();
// To dismiss the dialog
progress.dismiss();

要么

ProgressDialog.show(this, "Loading", "Wait while loading...");

在这里阅读更多。

顺便说一句, 微调在Android的不同的含义。 (这就像在HTML选择下拉列表)



Answer 2:

使用ProgressDialog

ProgressDialog.show(Context context, CharSequence title, CharSequence message);

然而,这被认为是一个反面模式今日(2013年): http://www.youtube.com/watch?v=pEGWcMTxs3I



Answer 3:

其实,如果你正在等待来自它应该通过程序来完成服务器响应。 您可以创建一个进度对话框,并关闭它,但随后又不是“Android的方式。”

目前推荐的方法是使用DialogFragment:

public class MySpinnerDialog extends DialogFragment {

    public MySpinnerDialog() {
        // use empty constructors. If something is needed use onCreate's
    }

    @Override
    public Dialog onCreateDialog(final Bundle savedInstanceState) {

        _dialog = new ProgressDialog(getActivity());
        this.setStyle(STYLE_NO_TITLE, getTheme()); // You can use styles or inflate a view
        _dialog.setMessage("Spinning.."); // set your messages if not inflated from XML

        _dialog.setCancelable(false);  

        return _dialog;
    }
}

然后在你的活动您将片段经理和显示对话框,一旦等待服务器启动:

FragmentManager fm = getSupportFragmentManager();
MySpinnerDialog myInstance = new MySpinnerDialog();
}
myInstance.show(fm, "some_tag");

一旦你的服务器响应完成后,会关闭它:

myInstance.dismiss()

请记住,progressdialog是一个微调或取决于属性的进度,了解更多关于该API指南



Answer 4:

ProgressDialog已成为自API等级26弃用https://developer.android.com/reference/android/app/ProgressDialog.html

我包括我的布局进度

   <ProgressBar
        android:layout_weight="1"
        android:id="@+id/progressBar_cyclic"
        android:visibility="gone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minHeight="40dp"
        android:minWidth="40dp" />

并改变其知名度.GONE | 。可见这取决于使用情况。

    progressBar_cyclic.visibility = View.VISIBLE


Answer 5:

这是我这究竟是怎么让只有一个进度对话框,可以在同一时间打开。 根据开来苏拉杰巴贾吉答案

private ProgressDialog progress;



public void showLoadingDialog() {

    if (progress == null) {
        progress = new ProgressDialog(this);
        progress.setTitle(getString(R.string.loading_title));
        progress.setMessage(getString(R.string.loading_message));
    }
    progress.show();
}

public void dismissLoadingDialog() {

    if (progress != null && progress.isShowing()) {
        progress.dismiss();
    }
}

我也不得不使用

protected void onResume() {
    dismissLoadingDialog();
    super.onResume();
}


文章来源: Best way to show a loading/progress indicator?