前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用

Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用

作者头像
fanfan
发布2022-05-06 19:59:19
发布2022-05-06 19:59:19
60900
代码可运行
举报
文章被收录于专栏:编程思想之路编程思想之路
运行总次数:0
代码可运行

viewpager的 使用分以下4步:

1, 在xml文件中添加:

代码语言:javascript
代码运行次数:0
复制
  <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

2,初始化控件并设置viewpager适配器:

代码语言:javascript
代码运行次数:0
复制
    mViewPager = (ViewPager) findViewById(R.id.viewPager);
        mViewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager(), mFragmentList));

3,设置启动时首页:

代码语言:javascript
代码运行次数:0
复制
 mViewPager.setCurrentItem(0);

4,设置viewpager的滑动监听事件:

代码语言:javascript
代码运行次数:0
复制
     mViewPager.addOnPageChangeListener(MyPageChangeListener);

我做的是viewpager加fragment,viewpager适配器的代码如下:

MyViewPagerAdapter.class

代码语言:javascript
代码运行次数:0
复制
public class MyViewPagerAdapter extends FragmentPagerAdapter {

    private List<Fragment> mFragmentList = new ArrayList<>();

    public MyViewPagerAdapter(FragmentManager fm,List<Fragment> mFragmentList) {
        super(fm);
        this.mFragmentList = mFragmentList;
    }


    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }
}

viewpager滑动监听 的事件代码如下:

代码语言:javascript
代码运行次数:0
复制
 private ViewPager.OnPageChangeListener MyPageChangeListener = new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            mViewPager.setCurrentItem(position);
            //当前页的标签颜色改变
            for (int i = 0;i < mViewList.size();i++){
                if (i==position){
                    mViewList.get(i).setSelected(true);
                }else {
                    mViewList.get(i).setSelected(false);
                }
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    };

改变字体颜色用到了selector,文件如下:

yellow_text_selector.xml

代码语言:javascript
代码运行次数:0
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="#ffff2d21"/>
    <item android:color="#020202"/>
</selector>

MainActivity部分代码如下:

代码语言:javascript
代码运行次数:0
复制
    ......
        mOne = (TextView) findViewById(R.id.one);
        mTwo = (TextView) findViewById(R.id.two);
        mViewList.add(mOne);
        mViewList.add(mTwo);
        mViewList.get(0).setSelected(true);
        mFragmentList.add(firstFragment);
        mFragmentList.add(secondFragment);
        mViewPager = (ViewPager) findViewById(R.id.viewPager);
        mViewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager(), mFragmentList));
        mViewPager.setCurrentItem(0);
        mViewPager.addOnPageChangeListener(MyPageChangeListener);

至于fragment代码,在博主的上一篇博客里已经贴出来了,有需要的可以看下。。。

很简单的一个demo,在此基础上掌握了viewpager的基本用法,可以很灵活的去设置各种特效,demo运行效果如下:

注:所涉及到的fragment导入的均是v4包下的,而且MAinActivity继承自fragmentActivity

右滑时fragment改变,标签颜色改变

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档