자동 스크롤 뷰페이저는 배너나 광고 이미지를 띄울 때 효율적으로 이미지를 보여줄 수 있어 많이 사용되는 방식이다. 사이드 프로젝트에서 대표적인 이미지들을 미리 보여주는 부분을 자동 스크롤 뷰페이저로 구현하기로 했다.
이번 자동 스크롤 뷰페이저는 https://github.com/demoNo/AutoScrollViewPager 해당 깃허브 라이브러리를 사용해서 구현했다.

상단에 배너는 AutoScrollViewPager을 사용하여 구현한 화면이다.
이번 글에서는 상단 배너까지 만들진 않을거고, 간단히 AutoScrollViewPager을 구현하는 방법에 대해서만 작성할 예정이다.
settings.gradle 파일에 추가
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
build.gradle 파일에 추가
dependencies {
compile 'com.github.demoNo:AutoScrollViewPager:v1.0.2'
}
<com.github.demono.AutoScrollViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="200dp"
app:stopWhenTouch="true"
app:slideInterval="5000"
app:slideDirection="right"
app:slideDuration="5000"/>
public class MyAdapter extends InfinitePagerAdapter {
private List<String> data;
public MyAdapter(List<String> data) {
this.data = data;
}
@Override
public int getItemCount() {
return data == null ? 0 : data.size();
}
@Override
public View getItemView(int position, View convertView, ViewGroup container) {
return your view;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
AutoScrollViewPager mViewPager = (AutoScrollViewPager) findViewById(R.id.viewPager);
MyAdapter mAdapter = new MyAdapter(data);
mViewPager.setAdapter(mAdapter);
// optional start auto scroll
mViewPager.startAutoScroll();
}
새로운 프로젝트에 해당 라이브러리를 적용했더니
Task :app:checkDebugDuplicateClasses FAILED
라는 에러문구가 뜨면서 빌드가 되지않았다...
이런 문구가 뜬다면
gradle.properties 파일에
android.useAndroidX=true
android.enableJetifier=true
요 문구가 있는지 확인해보고, 없다면 추가해주기!
enableJetifier는 androidX와 외부 라이브러리 충돌이 일어나는 것을 방지해주어 외부 라이브러리를 사용할 수 있게 해준다고한다.
내 경우는 useAndroidX는 true로 허용되어있었는데 enableJetifier 문구가 없어서 추가해 주었더니, 성공적으로 빌드가 가능했다 !