2

我有一个带有 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");
4

1 回答 1

0

据我了解,在没有太多内存的手机中加载所有片段时,您会遇到问题。一个解决方案可能是将 切换FragmentPageAdapterFragmentStatePageAdapter. 根据 Android 的FragmentStatePagerAdapter 文档,StatePageAdapter 在不查看片段时不会将片段保存在内存中,从而使用更少的内存。

于 2013-11-22T15:16:11.647 回答