2017-01-30 60 views
2

我有問題,它需要很長時間來加載數據,並只顯示當我滾動查看尋呼機。幾次我已經使用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); 


} 
+0

圖像是存儲在本地還是從互聯網獲取? –

+0

存儲在可繪製文件夾中的圖像 –

+0

根據大小它是單幅圖像還是不同圖像? –

回答

0

由於addWomenCategeory()異步任務,在主線程的代碼不等待爲結果。 考慮將代碼

adapterCategory.notifyDataSetChanged(); gridView.setRefreshing(false); gridView.onRefreshComplete(); 

到addWomencategory()方法,你來自哪裏,你的後端收到結果

1

我已經使用通用ImageLoader的庫來顯示圖像和我在適配器每次初始化的對象爲了解決這個問題,我只在主活動的onCreate()方法中的整個應用中初始化該配置對象一次。

+0

是的。這是在你的單例應用程序類中配置你的UIL的正確方法。 – Piyush

+0

考慮在onCreateView方法上初始化它 –