首先需要在gradle中引入依赖:
//阿里巴巴viewpage组件
implementation ('com.alibaba.android:ultraviewpager:1.0.7.7@aar') {
transitive = true
}
布局:
<!-- 切换卡 -->
<com.tmall.ultraviewpager.UltraViewPager
android:id="@+id/view_page"
android:layout_width="match_parent"
android:layout_height="700px"
android:layout_centerHorizontal="true"
android:layout_marginTop="220px" />
实现代码:
private UltraViewPager viewPager= findViewById(R.id.view_page);
private class mUtraPagerAdapter extends PagerAdapter {
private boolean isMultiScr;
mUtraPagerAdapter(boolean isMultiScr) {
this.isMultiScr = isMultiScr;
}
@Override
//获取当前窗体界面数
public int getCount() {
return 3;
}
@Override
//判断是否由对象生成界面
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
//是从ViewGroup中移出当前View
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
RelativeLayout view = (RelativeLayout) object;
container.removeView(view);
}
mPagerAdapter = new mUtraPagerAdapter(true);
//设置滚动方向
viewPager.setScrollMode(UltraViewPager.ScrollMode.HORIZONTAL);
//限定缓存页数
viewPager.setOffscreenPageLimit(3);
//绑定适配器
viewPager.setAdapter(mPagerAdapter);
//内置indicator初始化
viewPager.initIndicator();
//设置indicator样式
viewPager.getIndicator()
.setOrientation(UltraViewPager.Orientation.HORIZONTAL)
.setFocusColor(R.color.blueness)
.setNormalColor(Color.WHITE).setRadius(10)
.setMargin(10, 10, 10, 10);
//设置indicator对齐方式
viewPager.getIndicator().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
//构造indicator,绑定到UltraViewPager
viewPager.getIndicator().build();
//设定页面循环播放
viewPager.setInfiniteLoop(true);
//设定页面自动切换 间隔2秒
viewPager.setAutoScroll(3000);