我有一个带有3个片段的应用程序,即时通讯使用pageadapter所以我使用arraylist加载片段,问题是它,当我添加Arraylist片段加载所有片段,之后我加载另外2个片段,在我的nexus 4运行良好但其他一些硬件较少的手机需要一段时间。当你从页面移动到页面时,在Android市场似乎“加载”,我怎么能这样做?仅当人们使用下一个适配器改变到该页面时“创建”视图
public class PagerAdapter extends FragmentPagerAdapter {
private final ArrayList<Fragment> mFragments = new ArrayList<Fragment>();
private final ArrayList<String> titulos = new ArrayList<String>();
public PagerAdapter(FragmentManager manager) {
super(manager);
}
public void addFragment(Fragment fragment,String title) {
mFragments.add(fragment);
titulos.add(title);
notifyDataSetChanged();
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
这就是我在FragmentActivity中加载片段的方式
mPagerAdapter = new PagerAdapter(getSupportFragmentManager());
mPagerAdapter.addFragment(new Fragment1(),"Phone");
mPagerAdapter.addFragment(new Fragment2(),"info");
mPagerAdapter.addFragment(Fragment3.newInstance() , "none");
答案 0 :(得分:0)
根据我的理解,在没有太多内存的手机中加载所有碎片时会遇到问题。解决方案是将FragmentPageAdapter
切换为FragmentStatePageAdapter
。根据Android的FragmentStatePagerAdapter documentation,StatePageAdapter通过在未查看时不将片段保留在内存中来占用更少的内存。