我到处搜索,我找不到解决这个问题的方法。
基本上我有一个登录界面,我试图让一个进度微调器在登录到服务器时(通过一个线程)显示,然后在登录成功后将其关闭。它必须在改变方向时起作用。
我正在使用带有Android兼容性包的DialogFragment
来制作进度条(找不到任何文档,only for basic\alert dialog),因为现在已弃用showDialog()
。现在我只是将自定义消息框显示为登录微调器。
摘要:
DialogFragment
设置Progress微调器。答案 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
(从您的下一个FragmentActivity
或Fragment
内)并致电{{3}在它上面(如果你在此期间没有做任何其他的片段事务)。
如果您的进度对话框片段和下一个活动之间有更多的步骤/片段事务,您可能需要一个其他popBackStack(...)
方法,这些方法使用ID或标记将所有内容弹出到您的进度对话框片段堆栈。
答案 1 :(得分:19)
我知道这是一个老问题,但我希望为此分享更好的解决方案
根据Android Development Protip:
“停止使用ProgressDialog,内联指标是你的朋友”
罗马努里克states:
这个很快。停止使用ProgressDialog和其他模态加载 指标。它们非常中断和烦人,特别是 当:
每次切换标签时都会看到一个。
你不能退出他们。
他们说“请稍等”。不,谢谢,我宁愿卸载。
显示与您的内容内联的加载指标(例如 http://developer.android.com/training/animation/crossfade.html)或者更好的是,加载少量数据 背景,以便您最小化甚至显示加载的需要 指示器。
有关进展的更多信息& design guidelines中的活动。