我到处搜索,但找不到解决此问题的方法。
基本上我有一个登录屏幕,我试图让一个进度微调器在它登录到服务器(通过线程)时显示,然后在登录成功后将其关闭。它必须在改变方向时起作用。
我正在使用带有 Android 兼容性包的 DialogFragment
来制作进度条(找不到任何文档,only for basic\alert dialog),因为 showDialog()
是现在已弃用。现在我只是显示一个自定义消息框作为登录微调器。
总结:
- 如何使用
DialogFragment
设置进度微调器。 - 如何在方向更改后在另一个线程中将其关闭。
最佳答案
要显示进度微调器,只需覆盖 DialogFragment.onCreateDialog()在这样的对话框 fragment 中(无需覆盖 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;
}
至于从其他地方解除该对话框 fragment ,您需要掌握 FragmentManager
(从您的下一个 FragmentActivity
或 Fragment
) 并调用 popBackStack()
就可以了(如果您在此期间不进行任何其他 fragment 事务)。
如果您的进度对话框 fragment 和下一个 Activity 之间有更多步骤/fragment 事务,您可能需要其他 popBackStack(...)
方法之一,该方法采用 ID 或标签将所有内容从堆栈中弹出到您的进度对话框 fragment 。
关于Android DialogFragment 进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298962/