我有一个Fragment
带有一些按钮,当按下时用另一个按钮替换当前片段。现在,片段的片段需要几秒钟来设置包含的所有视图,所以我想在片段视图正在构建时显示Spinner
。
我无法使用AsyncTask
进行"构建" Fragment
,所以我尝试在onCreateView
Fragment
方法中运行一个帖子来显示:
showLoadingDialog();
Thread t = new Thread() {
@Override
public void run() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
setWidgets(view);
dismissLoadingDialog();
}
});
}
};
t.start();
其中showLoadingDialog()
显示Spinner
(和dismissLoadingDialog忽略它)和setWidgets(view)它是填充片段内所有视图的函数。
这个解决方案不起作用,因为只有当setWidgets结束时才显示Fragment
,所以没有显示微调器。
我该怎么办?
答案 0 :(得分:0)
您应该使用AsyncTask,并在 onPostExecute()方法中更改片段。
此方法旨在重新运行UI线程,并专门设计为在Async(关闭UI线程)操作完成后处理UI操作的位置。