我有一个使用标签的Activity,标签会切换片段。问题是Fragment在创建时需要几秒钟才能加载,因此切换标签会有大约1或2秒的延迟。为了解决这个问题,我一直试图找到一种方法来显示一个简单的加载图形甚至是一个进度对话框,这样标签就会立即改变并显示一些东西,表明在一切都完成之前就会加载。
Fragment的onCreateView
方法如下所示:
FrameLayout fl;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
fl = (FrameLayout) inflater.inflate(R.layout.text_layout, container, false);
doHeavyStuff();
return fl;
}
我尝试将doHeavyStuff()
放入onStart()
,但这没有任何帮助。并且线程无法帮助,因为doHeavyStuff()
涉及操纵视图/ GUI。
关于如何显示片段并在其他所有内容加载时显示“加载”信息的任何想法?
谢谢!
太
答案 0 :(得分:8)
在onActivityCreated()
:
progress bar
(或显示UI元素的任何进度)。HeavyStuffDoingAsyncTask
。HeavyStuffDoingAsyncTask 应该有:
doHeayStuff()
在<{1}}方法中不更新ui 的逻辑。doInBackground
致电publishProgress()
。doInBackground()
方法实现UI更新逻辑。onProgressUpdate
方法中的进度条。祝你好运。
答案 1 :(得分:1)
尝试设置
pager.setOffscreenPageLimit(no_of_fragments or pages);