android ViewPager和Fragment

发布时间:2019-06-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了android ViewPager和Fragment脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

ViewPager的应用场景

使用步骤

第一步:在布局文件中加入ViewPager组件,并在代码中获得该组件

<android.support.v4.view.ViewPager
        android:id="@+id/bbs_center_viewPager"
        android_layout_width="match_parent"
        android_layout_height="match_parent" />

第二步:为ViewPager添加适配器,ViewPager可以有三种类型的适配器

  • PagerAdapter:使用较少,所以没有去了解

  • FragmentPagerAdapter:适用于Fragment比较少的情况下,因为这个适配器会将访问过得Fragment都保存在内存中,当Fragment较多时对内存的消耗就会比较大。

  • FragmentStatePagerAdapter:适用于Fragment较多的情况下。当整个Fragment不再被访问,它将被销毁

示例代码:

public class ExamplePagerAdapter extends FragmentstatePagerAdapter{
    List<Fragment> fragments;
    String[] titles;
    
    //fragments里是ViewPager所有要显示的Fragment的集合,titles是所有标签页的名字的集合
    public ExamplePagerAdapter(FragmentManager fm, List<Fragment> fragments, String[] titles) {
        super(fm);
        this.fragments = fragments;
        this.titles = titles;
    }
    
    //此ViewPager一共有多少个标签页可以滑动
    @Override
    public int getCount() {
        return fragments.size();
    }
    
    //通过此方法返回对应位置标签页用到的fragment
    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }
    
    //通过此方法指定每个标签页的名字
    @Override
    public CharSequence getPageTitle(int position) {
        return titles[position];
    }
}

第三步:为ViewPager绑定适配器,传入参数

ViewPager viewPager = (ViewPager) findViewById(R.id.BBS_center_viewPager);
ExamplePagerAdapter pagerAdapter = new ExamplePagerAdapter (getSupportFragmentManager(), posts, titles);
viewPager.setAdapter(pagerAdapter );

第四步:为ViewPager绑定监听器
<!-- 监听器的写法以后补上 -->

其他

1.通过ViewPager控制显示第几个标签页:

    @Override
    public void onBackPressed() {
        if (mPager.getcurrentItem() == 0) {
            // If the user is currently looking at the First step, allow the System to handle the
            // Back button. This calls finish() on this activity and pops the back stack.
            super.onBackPRessed();
        } else {
            // Otherwise, select the previous step.
            mPager.setCurrentItem(mPager.getCurrentItem() - 1);
        }
    }

2.在使用FragmentStatePagerAdapter作为适配器的情况下保存Fragment的状态
当使用FragmentStatePagerAdapter 时,如果Fragment不显示,那么Fragment对象会被销毁(滑过后会保存当前界面,以及下一个界面和上一个界面(如果有),最多保存3个,其他会被销毁掉)。但在回调onDestroy()方法之前会回调onSaveinstanceState(Bundle outState)方法来保存Fragment的状态,下次Fragment显示时通过onCreate(Bundle savedInstanceState)把存储的状态值取出来,

参考文章
Android中Fragment+ViewPager的配合使用
ViewPager三种适配器详解

脚本宝典总结

以上是脚本宝典为你收集整理的android ViewPager和Fragment全部内容,希望文章能够帮你解决android ViewPager和Fragment所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。