【问题标题】:ViewPagerIndicator, Fragments with heavy content, how to manage loadingViewPagerIndicator,内容繁重的片段,如何管理加载
【发布时间】:2013-07-06 03:14:28
【问题描述】:

我使用带有标签的 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);
  }

有什么想法吗?

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:
    ProgressDialog progressDialog = new ProgressDialog(context);
     progressDialog.setMessage("Loading...");
                progressDialog.show();
    
    //do your stuff
    
    progressDialog.dismiss();
    

    应该这样做!

    【讨论】:

    • 我想他提到他想显示一个 ProgressBar,而不是一个进度对话框。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      相关资源
      最近更新 更多