里面的片段ViewPager需要很长时间来加载子片段
我有问题,它需要很长时间来加载数据,并只显示当我滚动查看寻呼机。几次我已经使用asynctask但不工作。改变标签后,我打电话给同一片段任何一个帮助我?里面的片段ViewPager需要很长时间来加载子片段
Here, is first time loaded data
After changing tab call same fragment
这里是我的ViewPager适配器
public class AdapterCategoryViewPager extends FragmentPagerAdapter {
Context context;
private List<Fragment> fragmentList;
private List<Type> typeList;
public AdapterCategoryViewPager(FragmentManager fm, Context context, List<Fragment> fragmentList, List<Type> typeList) {
super(fm);
this.context = context;
this.fragmentList = fragmentList;
this.typeList = typeList;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
return typeList.get(position).getType().toString();
}
@Override
public int getCount() {
return fragmentList.size();
}
}
这里是我的类别片段这个功能我呼吁异步任务
private void setData(View v)
{
addWomenCategory();
ll_list.removeView(v);
gridView.removeView(v);
gridView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);
adapterCategory=new AdapterCategory(v.getContext(),categoryArrayList,height,width);
gridView.setAdapter(adapterCategory);
g=(GridView) gridView.getRefreshableView();
g.setHorizontalSpacing(h7);
g.setVerticalSpacing(h7);
// g.setEnabled(false);
gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<GridView>() {
@Override
public void onRefresh(final PullToRefreshBase<GridView> refreshView) {
gridView.postDelayed(new Runnable() {
@Override
public void run() {
refreshView.getLoadingLayoutProxy().setRefreshingLabel("Loding Data...");
refreshView.getLoadingLayoutProxy().setReleaseLabel("Refresh complete");
addWomenCategory();
adapterCategory.notifyDataSetChanged();
gridView.setRefreshing(false);
gridView.onRefreshComplete();
}
},2000);
}
});
}
这里是我HomeFragment实际上在数组列表中添加片段类别这个功能我也叫的AsyncTask
private void setData(View v)
{
addType();
pager.setOffscreenPageLimit(3);
adapterType=new AdapterType(typeArrayList,v.getContext(),height,width);
fragmentList.add(new FragmentListCategory());
fragmentList.add(new FragmentMenListCategory());
fragmentList.add(new FragmentKidListCategory());
fragmentList.add(new FragmentListCategory());
fragmentList.add(new FragmentMenListCategory());
fragmentList.add(new FragmentKidListCategory());
pager.setAdapter(new AdapterCategoryViewPager(getFragmentManager(),v.getContext(),fragmentList,typeArrayList));
tabs.setViewPager(pager);
setUpTabStrip(v);
}
由于addWomenCategeory()异步任务,在主线程的代码不等待为结果。 考虑将代码
adapterCategory.notifyDataSetChanged(); gridView.setRefreshing(false); gridView.onRefreshComplete();
到addWomencategory()方法,你来自哪里,你的后端收到结果
我已经使用通用ImageLoader的库来显示图像和我在适配器每次初始化的对象为了解决这个问题,我只在主活动的onCreate()方法中的整个应用中初始化该配置对象一次。
是的。这是在你的单例应用程序类中配置你的UIL的正确方法。 – Piyush
考虑在onCreateView方法上初始化它 –
图像是存储在本地还是从互联网获取? –
存储在可绘制文件夹中的图像 –
根据大小它是单幅图像还是不同图像? –