Android开发使用阿里的UltraViewPager

OverView

今天在学习的过沉中尝试让ViewPager实现自动滚动,这个我之前写过,写划过博客,但是,我今天去使用它,发现我写的那个有带你无法满足我,所以我就直接使用了阿里开源的UltraViewPager,这玩意功能强大。
接下来让我们看一下如何使用它吧。

开发环境

Android Studio 3.5.3
启用 AndroidX
开发语言 JAVA

添加框架依赖

我们在APP的build.gradle添加

implementation ('com.alibaba.android:ultraviewpager:1.0.7.8'){
    transitive = true
}

然后点击同步,这样我们的依赖就添加完成了!

看看如何使用它

按照国际惯例先看源代码:(布局文件)

这样我们的布局文件就创建完成了。

然后我们来看一下适配器:

package com.example.testandroid.Adpaters;

import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;

import java.util.ArrayList;
import java.util.List;


public class UltraPagerAdapter extends PagerAdapter {
    private List listViews = new ArrayList<>();

    public UltraPagerAdapter(List listViews) {
        this.listViews = listViews;
    }

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

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        container.addView(listViews.get(position));
        return listViews.get(position);
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(listViews.get(position));
    }
}

这些就是适配器了。接着我们根据适配器源码来看一下。
我们的适配器继承了我们的PagerAdpter
然后我们创建了一个List 然后创建了我们的构造方法。
接下来的步骤和我们普通的PagerAdpater的方法是一样的。
这些都是比较简单的,然后让我么了看一下核心代码是啥样的。

核心代码区域

//init pagerView
View view1 = View.inflate(getApplicationContext(), R.layout.keep_my_view_pager1, null);
Typeface typeface1 = ResourcesCompat.getFont(this, R.font.texgyreadventor_bolditalic);
((TextView) view1.findViewById(R.id.view_title)).setTypeface(typeface1);
listView.add(view1);

View view2 = View.inflate(getApplicationContext(), R.layout.keep_my_view_pager2, null);
((TextView) view2.findViewById(R.id.view_title)).setTypeface(typeface1);
listView.add(view2);

ultraViewPager = findViewById(R.id.my_UltraViewPager);
ultraViewPager.setScrollMode(UltraViewPager.ScrollMode.HORIZONTAL);
PagerAdapter adapter = new UltraPagerAdapter( listView);
ultraViewPager.setAdapter(adapter);
ultraViewPager.initIndicator();
ultraViewPager.getIndicator().setOrientation(UltraViewPager.Orientation.HORIZONTAL)
        .setFocusColor(Color.GREEN)
        .setNormalColor(Color.WHITE)
        .setRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, getResources().getDisplayMetrics()));
ultraViewPager.getIndicator().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
ultraViewPager.getIndicator().build();
ultraViewPager.setInfiniteLoop(true);
ultraViewPager.setAutoScroll(2000);

这部分就是我们的UltraViewPager的核心区域了。
我们来好好的看一下:
首先我创建了两个View填充我们的控件。
然后我们实例化我们的控件,并且确定我们滚动提示图标的位置。
然后我们实例化我们的适配器,并且将他和控件绑定。
接着我们需要编写我们的initIndicator();这边又啥用了?
他就是显示我们的滚动提示圈的,
这里又几个属性需要注意一下,未选中的颜色,选中的颜色,和我们的大小。
这些创建完成后我们需要去固定小圈圈的位置。
然后就是是否开启我们的自动滚动,以及间隔时间。

你可能感兴趣的:(Android开发使用阿里的UltraViewPager)