美文网首页
简单实现viewPager基础效果

简单实现viewPager基础效果

作者: JokerHerry | 来源:发表于2017-12-11 21:04 被阅读0次

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);

相关文章

网友评论

      本文标题:简单实现viewPager基础效果

      本文链接:https://www.haomeiwen.com/subject/yiswixtx.html