Ready to use material 3 carousel adaper for recycler view (based on M3 Carousel). No need to create all the boilerplate code, just attach to recyclerView and use it.
demo.mov
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation "com.github.kevintorch:CarouselAdapter:1.0.1"
}
class MainActivity : AppCompatActivity() {
private val carouselAdapter = CarouselAdapter()
private val images = listOf(
"https://letsenhance.io/static/8f5e523ee6b2479e26ecc91b9c25261e/1015f/MainAfter.jpg",
"https://plus.unsplash.com/premium_photo-1664304519683-edde298ccc9d?w=800&auto=format&fit" +
"=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxlZGl0b3JpYWwtZmVlZHw1fHx8ZW58MHx8fHx8",
"https://images.unsplash.com/photo-1716040313180-aa8df510ccfb?w=800&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxlZGl0b3JpYWwtZmVlZHwxMXx8fGVufDB8fHx8fA%3D%3D")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
carouselAdapter.attachToRecyclerView(recyclerView)
val imageItems = images.mapIndexed { i, it -> ImageItem(it, "Image $i") }
carouselAdapter.submitList(imageItems)
}
}