ViewPager的使用补充

来源:互联网 发布:小米快盘数据如何迁移 编辑:程序博客网 时间:2024/05/19 19:56

这里写图片描述

这里写图片描述

我们在展现Fragment的过程中,会使用
FragmentPagerAdapter来展现.但是这样的适配器有一个特点,就是创建的Fragment从屏幕中创建出来之后,就会在内存中驻留一段时间,这样,当我们需要展现大量数据的时候,就不能使用上面的适配器,否则,手机很快内存溢出,或者性能下降.
重新展现时,只会调用oncreateview()方法.

如果我们需要如图展现大量的数据时,使用的是FragmentStatePagerAdapter,自定义类继承此类.

当展现组件的时候,溢出屏幕,手机会销毁展现的组件.
每次出现在屏幕中,都会调用
Oncreate()与oncreateview()方法.

class MyAdater extends FragmentStatePagerAdapter {    public MyAdater(FragmentManager fm) {        super(fm);        // TODO Auto-generated constructor stub    }    @Override    public Fragment getItem(int arg0) {        // TODO Auto-generated method stub        return MyFragment.getInstance(arg0);    }    @Override    public int getCount() {        // TODO Auto-generated method stub        return MAXCOUNT;    }}

在自定义的Fragment中根据传入的参数来展现不同的数据

 public View onCreateView(LayoutInflater inflater, ViewGroup container,        Bundle savedInstanceState) {     View view=inflater.inflate(R.layout.fragment, null);     TextView textview=(TextView) view.findViewById(R.id.textview);     textview.setText("当前是第"+(tabIndex+1)+"页");     data=new ArrayList<String>();     for(int i=pageSize*tabIndex+1;i<(pageSize)*(tabIndex+1)+1;i++){         data.add("Tom"+i);     }     this.setListAdapter(new ArrayAdapter<String>(this.getActivity(),android.R.layout.simple_list_item_1,data));    return view;}

对于按钮事件的处理:

    ((Button) this.findViewById(R.id.prePage))            .setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    // TODO Auto-generated method stub                    currentPage=ViewPager.getCurrentItem();                    ViewPager.setCurrentItem(currentPage-1);                }            });
0 0