更改选项卡缓慢/滞后 - 使用片段

时间:2012-02-11 02:53:50

标签: android tabs android-fragments switching performance

我有一个使用标签的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。

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

谢谢!

2 个答案:

答案 0 :(得分:8)

onActivityCreated()

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

HeavyStuffDoingAsyncTask 应该有:

  • doHeayStuff()在<{1}}方法中不更新ui 的逻辑。
  • 每当您想要更新ui时,
  • 都会从doInBackground致电publishProgress()
  • 使用doInBackground()方法实现UI更新逻辑。
  • 停止onProgressUpdate方法中的进度条。

祝你好运。

答案 1 :(得分:1)

尝试设置

pager.setOffscreenPageLimit(no_of_fragments or pages);