1

我使用带有选项卡的 ViewPagerindicator 来显示我的内容。问题是,我的 Fragments 有很多视图,由于许多元素和图片,需要花费大量时间来生成它们。我想在加载时显示进度条,但是如何管理呢?在我的测试实例(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);
  }

有任何想法吗?

4

2 回答 2

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

//do your stuff

progressDialog.dismiss();

这应该只是这样做!

于 2013-07-05T19:11:36.550 回答
0

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

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

于 2013-07-05T19:14:28.670 回答