当我在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;
}
}
答案 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
}
}
这会将您的观点保留在内存中而不是重新创建它们,因此请小心处理的金额。