我使用带有标签的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);
}
任何想法?
答案 0 :(得分:0)
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading...");
progressDialog.show();
//do your stuff
progressDialog.dismiss();
这应该就这样做!
答案 1 :(得分:0)
很少有事情需要注意。我不认为加载1000个TextViews的成本和加载许多“元素和图片”的成本相同。因此,该模拟不会真正为您提供准确的结果。
其次,您提到您在加载数据时尝试显示进度条?这是一个任意数量的元素和图片?如果是这样,当用户等待加载内容时,您不希望进度条永远存在。 IMO,一种更好的方法是延迟加载你需要的元素,使用某种缓存来防止底层数据被不必要地重新加载。