您好,欢迎来到花图问答。
搜索
您的当前位置:首页用viewPager实现滑屏功能

用viewPager实现滑屏功能

来源:花图问答

一、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更节省内存。

Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务