7

我有一个使用标签的活动,标签切换片段。问题是 Fragment 在创建时需要几秒钟才能加载,因此切换选项卡有大约 1 或 2 秒的延迟。为了解决这个问题,我一直在尝试找到一种方法来显示一个简单的加载图形甚至是一个进度对话框,以便选项卡立即更改并显示一些指示正在加载的内容,直到一切完成。

onCreateView的 Fragment 方法如下所示:

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。

关于如何其他所有内容加载时显示片段并显示“加载”信息的任何想法?

谢谢!

马特。

4

2 回答 2

8

onActivityCreated()

  • 启动一个progress bar(或任何显示 UI 元素的进度)。
  • 执行HeavyStuffDoingAsyncTask下面解释的。

HeavyStuffDoingAsyncTask应该有:

  • doHeayStuff()的逻辑,它不会doInBackground方法中更新 ui。
  • 每次您想更新 ui 时调用publishProgress()doInBackground()
  • 在方法中实现 UI 更新逻辑onProgressUpdate
  • 停止方法中的进度条onPostExecute

祝你好运。

于 2012-02-11T18:59:33.120 回答
3

尝试设置

pager.setOffscreenPageLimit(no_of_fragments or pages);
于 2016-12-09T08:01:42.733 回答