程序人生Android开发Android知识

用viewPager实现滑屏功能

2017-01-10  本文已影响100人  五人行

一、ViewPager是一个Fragment容器;FragmentManager要求任何用作Fragment容器的视图必须要有资源ID。

二、自定义资源(values/ids.xml)

<resources>

<item type="id" name="viewPager"/>

</resources>

三、在Activity中把viewPager设置为内容视图

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mViewPager=new ViewPager(this);

mViewPager.setId(R.id.viewPager);

this.setContentView(this.mViewPager);

}

四、为ViewPager对象设置适配器

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mViewPager=newViewPager(this);

mViewPager.setId(R.id.viewPager);

this.setContentView(this.mViewPager);

this.mCrimes= CrimeLab.get(this).getCrimes();

FragmentManager manager=this.getSupportFragmentManager();

this.mViewPager.setAdapter(new FragmentStatePagerAdapter(manager) {

@Override

publicFragment getItem(intposition) {

Crime crime=CrimePagerActivity.this.mCrimes.get(position);

return CrimeFragment.newCrimeFragment(crime.getmId());

}

@Override

public int getCount() {

return CrimePagerActivity.this.mCrimes.size();

}

});

}

五、FragmentStatePagerAdapter与FragmentPagerAdapter

区别:在卸载不需要的Fragment时,二者处理的方式不一样。FragmentStatePagerAdapter会销毁不需要的Fragment,事务提交后,会将Fragment从Activity的FragmentManager中删除。

FragmentPagerAdapter只会删除Fragment视图,而Fragment实例保留在FragmentManager中。

通常来说,FragmentStatePagerAdapter更节省内存。

上一篇下一篇

猜你喜欢

热点阅读