Android DialogFragment进度条

时间:2011-09-04 11:41:36

标签: android android-fragments android-progressbar

我到处搜索,我找不到解决这个问题的方法。

基本上我有一个登录界面,我试图让一个进度微调器在登录到服务器时(通过一个线程)显示,然后在登录成功后将其关闭。它必须在改变方向时起作用。

我正在使用带有Android兼容性包的DialogFragment来制作进度条(找不到任何文档,only for basic\alert dialog),因为现在已弃用showDialog()。现在我只是将自定义消息框显示为登录微调器。

摘要:

  • 如何使用DialogFragment设置Progress微调器。
  • 如何在方向更改后在另一个帖子中将其解除。

2 个答案:

答案 0 :(得分:60)

要显示进度微调器,只需在对话框片段中覆盖DialogFragment.onCreateDialog(),就像这样(不需要覆盖onCreateView()):

@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
    final ProgressDialog dialog = new ProgressDialog(getActivity());
    //
    dialog.setTitle(R.string.login_title);
    dialog.setMessage(getString(R.string.login_message));
    dialog.setIndeterminate(true);
    dialog.setCancelable(false);
    // etc...
    return dialog;
}

至于从其他地方解雇该对话框片段,您需要暂停FragmentManager(从您的下一个FragmentActivityFragment内)并致电{{3}在它上面(如果你在此期间没有做任何其他的片段事务)。

如果您的进度对话框片段和下一个活动之间有更多的步骤/片段事务,您可能需要一个其他popBackStack(...)方法,这些方法使用ID或标记将所有内容弹出到您的进度对话框片段堆栈。

答案 1 :(得分:19)

我知道这是一个老问题,但我希望为此分享更好的解决方案

根据Android Development Protip:

  

“停止使用ProgressDialog,内联指标是你的朋友”

罗马努里克states

enter image description here

  

这个很快。停止使用ProgressDialog和其他模态加载   指标。它们非常中断和烦人,特别是   当:

     
      
  • 每次切换标签时都会看到一个。

  •   
  • 你不能退出他们。

  •   
  • 他们说“请稍等”。不,谢谢,我宁愿卸载。

  •   
     

显示与您的内容内联的加载指标(例如   http://developer.android.com/training/animation/crossfade.html)或者更好的是,加载少量数据   背景,以便您最小化甚至显示加载的需要   指示器。

     

有关进展的更多信息& design guidelines中的活动。