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