https://github.com/prongbang/looperviewpager
The Simple Looper View Pager Android Library
https://github.com/prongbang/looperviewpager
android looper viewpager-infinity viewpager-looper
Last synced: about 2 months ago
JSON representation
The Simple Looper View Pager Android Library
- Host: GitHub
- URL: https://github.com/prongbang/looperviewpager
- Owner: prongbang
- License: mit
- Created: 2018-02-13T08:35:12.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-08T16:50:32.000Z (almost 6 years ago)
- Last Synced: 2025-03-25T22:52:06.469Z (about 1 year ago)
- Topics: android, looper, viewpager-infinity, viewpager-looper
- Language: Kotlin
- Homepage:
- Size: 470 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Looper View Pager
The Simple Looper View Pager Android Library

## Download
> build.gradle
```gradle
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```
### Support Library
```gradle
implementation 'com.github.prongbang:looperviewpager:1.0.2'
```
### AndroidX
```gradle
implementation 'com.github.prongbang:looperviewpager:2.0.0'
```
## How to use
> MainActivity.kt
```kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val galleries = ArrayList()
galleries.add(Gallery(1, "Gallery 1", "", android.R.color.holo_green_light))
galleries.add(Gallery(2, "Gallery 2", "", android.R.color.holo_red_light))
galleries.add(Gallery(3, "Gallery 3", "", android.R.color.holo_blue_light))
galleries.add(Gallery(4, "Gallery 4", "", android.R.color.holo_orange_light))
galleries.add(Gallery(5, "Gallery 5", "", android.R.color.holo_purple))
val galleryPagerAdapter = GalleryPagerAdapter(supportFragmentManager, vpGallery).apply {
setItems(galleries)
}
vpGallery?.apply {
adapter = galleryPagerAdapter
addOnPageChangeListener(galleryPagerAdapter)
setCurrentItem(1, false)
}
val pageSize = galleries.size
counter.text = ("1/$pageSize")
vpIndicator?.apply {
setupWithViewPager(vpGallery, galleries.size)
addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {}
override fun onPageScrolled(position: Int, positionOffset: Float,
positionOffsetPixels: Int) {
}
override fun onPageSelected(position: Int) {
counter.text = ("$position/$pageSize")
}
})
}
}
override fun onDestroy() {
super.onDestroy()
vpIndicator.cleared()
}
```
> GalleryPagerAdapter.kt
```kotlin
class GalleryPagerAdapter(fm: FragmentManager, viewPager: ViewPager) : LooperFragmentStatePagerAdapter(fm, viewPager) {
override fun getItem(oldPosition: Int, newPosition: Int): Fragment {
return GalleryFragment.newInstance(content[newPosition])
}
}
```
> Gallery.kt
```kotlin
@Parcelize
data class Gallery(
var id: Int,
var name: String,
var image: String
) : Parcelable
```
> GalleryFragment.kt
```kotlin
class GalleryFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_gallery, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
arguments?.getParcelable(Gallery::class.java.simpleName)
?.let { gallery ->
context?.let {
rootView.setBackgroundColor(ContextCompat.getColor(it, gallery.backgroundColor))
}
tvMessage.text = gallery.name
}
}
companion object {
fun newInstance(gallery: Gallery): GalleryFragment {
return GalleryFragment().apply {
arguments = Bundle().apply {
putParcelable(Gallery::class.java.simpleName, gallery)
}
}
}
}
}
```
> activity_main.xml
```xml
```
### Thank you