Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.Fedorkz:InfiniteViewPager:1.0.0'
}
dependencies {
implementation("com.github.Fedorkz:InfiniteViewPager:1.0.0")
}
<dependency>
<groupId>com.github.Fedorkz</groupId>
<artifactId>InfiniteViewPager</artifactId>
<version>1.0.0</version>
</dependency>
libraryDependencies += "com.github.Fedorkz" % "InfiniteViewPager" % "1.0.0"
:dependencies [[com.github.Fedorkz/InfiniteViewPager "1.0.0"]]
https://github.com/waylife/InfiniteViewPager
Almost the same as the viewpager. Below are some steps.
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="200dp">
<com.zanlabs.widget.infiniteviewpager.InfiniteViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:visibility="visible" />
<com.zanlabs.widget.infiniteviewpager.indicator.LinePageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:fillColor="#e3ffc7"
app:pageColor="#5fff65" />
</RelativeLayout>
Similar as the implement of BaseAdapter. You need to overide the getView and getItemCount(not getCount) mehtod.
@Override
public View getView(int position, View view, ViewGroup container) {
ViewHolder holder;
if (view != null) {
holder = (ViewHolder) view.getTag();
} else {
view = mInflater.inflate(R.layout.item_infinite_viewpager, container, false);
holder = new ViewHolder(view);
view.setTag(holder);
}
PagerItem item = mList.get(position);
holder.position = position;
holder.name.setText(item.getName());
holder.description.setText(item.getDesc()+"position:"+position);
Picasso.with(mContext).load(item.getImageUrl()).placeholder(R.mipmap.bg_loding_horizontal).into(holder.image);
return view;
}
@Override
public int getItemCount() {
return mList==null?0:mList.size();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
//
MockPagerAdapter pagerAdapter = new MockPagerAdapter(this);
pagerAdapter.setDataList(MockDataGenerator.getViewPagerData());
mViewPager.setAdapter(pagerAdapter);
mViewPager.setAutoScrollTime(5000);
mViewPager.startAutoScroll();
mLineIndicator.setViewPager(mViewPager);
//
}
@Override
public void onStart() {
super.onStart();
if (mViewPager != null)
mViewPager.startAutoScroll();
}
@Override
public void onStop() {
if (mViewPager != null)
mViewPager.stopAutoScroll();
super.onStop();
}
More You can refer to the sample project.
The MIT License.