ViewPagerIndicator,内容繁重的片段,如何管理加载

时间:2013-01-21 09:35:03

标签: android android-viewpager

我使用带有标签的ViewPagerindicator来显示我的内容。问题是,我的片段有很多视图,由于许多元素和图片,需要花费大量时间来生成它们。我想在加载时显示进度条,但是如何管理呢?在我的测试实例(TestFragment)中,我有这个方法有很多textViews(它模拟了现实):

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


        LinearLayout layout = new LinearLayout(getActivity());
        layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        layout.setGravity(Gravity.CENTER);
        for (int a=0; a < 1000; a++) layout.addView(createTextView());

        return layout;
    }

在我的寻呼机适配器中,我可以加载所有片段,以避免在更改页面时等待片段:

 ViewPager pager = (ViewPager)findViewById(R.id.pager);
 pager.setAdapter(adapter);
 pager.setOffscreenPageLimit(5);

但我不知道,我怎么能管理所有加载的片段?因为它们都在适配器中逐个加载:

  public Fragment getItem(int position) {
   return TestFragment.newInstance(position);
  }

任何想法?

2 个答案:

答案 0 :(得分:0)

ProgressDialog progressDialog = new ProgressDialog(context);
 progressDialog.setMessage("Loading...");
            progressDialog.show();

//do your stuff

progressDialog.dismiss();

这应该就这样做!

答案 1 :(得分:0)

很少有事情需要注意。我不认为加载1000个TextViews的成本和加载许多“元素和图片”的成本相同。因此,该模拟不会真正为您提供准确的结果。

其次,您提到您在加载数据时尝试显示进度条?这是一个任意数量的元素和图片?如果是这样,当用户等待加载内容时,您不希望进度条永远存在。 IMO,一种更好的方法是延迟加载你需要的元素,使用某种缓存来防止底层数据被不必要地重新加载。