片段寻呼机更改时避免重新创建相同的视图

时间:2014-08-13 18:30:16

标签: java android android-fragments fragmentpageradapter

当我在instantiateItem中更改片段页面重新创建视图时。 我怎么能避免这个?

public class ContactPagerAdapter extends PagerAdapter implements IconTabProvider {

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View view =null;
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.show_content,null);    
        container.addView(view, 0);
        return view;
    }

}

1 个答案:

答案 0 :(得分:0)

FragmentPagerAdapter扩展而来:

  

<强> FragmentPagerAdapter

     

PagerAdapter的实现,它将每个页面表示为片段,只要用户可以返回到页面,该片段就会持久保存在片段管理器中。

     

当有一些通常更多的静态片段被分页时,这个版本的寻呼机最适合使用,例如一组标签。用户访问的每个页面的片段将保留在内存中,但其视图层次结构可能在不可见时被销毁。这可能导致使用大量内存,因为片段实例可以保持任意数量的状态。对于较大的页面集,请考虑FragmentStatePagerAdapter。

public static class ContactPagerAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
       //inflate your fragment here
    }
}

这会将您的观点保留在内存中而不是重新创建它们,因此请小心处理的金额。