简单实现viewPager基础效果

viewPager简介:

  • 通过活动切换展示view的效果。
  • 在v4包里面(android.support.v4.view.ViewPager)。

实现流程:

1.xml中添加一个viewPager的控件
2.Activity中添加需要实现滑动展示的viewlist
3.申明Pageradapter
4.为ViewPager添加adapter
5.使用CirclePageIndicator添加下方小圆点

具体实现:

1.首先在xml文件中添加viewpager控件

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

2.申明一个List<View>的集合

        List<View> viewList = new ArrayList<>();
        LayoutInflater view = getLayoutInflater().from(MainActivity.this);
        View view1 = view.inflate(R.layout.view,null);
        View view2 = view.inflate(R.layout.view,null);
        View view3 = view.inflate(R.layout.view,null);
        viewList.add(view1);
        viewList.add(view2);
        viewList.add(view3);

我们常添加已经设置好的layout文件,或者是直接申明然后插入,例如下面的方式:

        ImageView imageView = new ImageView(this);
        imageView.setImageResource(R.drawable.bg);
        viewList.add(imageView);

3.申明一个adapter类,继承PagerAdapter
重写四个方法,直接复制下面的内容。

private List<View> mViewList ;

    public adapter(List<View> mViewList ) {
        this.mViewList = mViewList;
    }
    
    @Override    
    public int getCount() {
        return mViewList.size();
    }
    @Override    
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(mViewList.get(position));
        return mViewList.get(position);
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(mViewList.get(position));
    }

4.viewpager与adapter绑定

pager.setAdapter(new adapter(viewList));

5.使用CirclePageIndicator 实现小圆点的快速实现
需要进入插件

compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'

xml中申明

    <com.viewpagerindicator.CirclePageIndicator
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/circle"
        android:layout_gravity="bottom"
        android:layout_marginBottom="10dp"
        app:fillColor="#ffffffff"
        app:pageColor="#9f888888"
        app:strokeWidth="1dp" />

activity中绑定

        CirclePageIndicator circlePageIndicator = findViewById(R.id.circle);
        circlePageIndicator.setViewPager(pager);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容