https://github.com/prongbang/animatedrecyclerview
Animated Recycler View Android Library
https://github.com/prongbang/animatedrecyclerview
android android-library animation library recyclerview
Last synced: 2 months ago
JSON representation
Animated Recycler View Android Library
- Host: GitHub
- URL: https://github.com/prongbang/animatedrecyclerview
- Owner: prongbang
- License: mit
- Created: 2018-02-15T06:17:21.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-08-08T16:48:49.000Z (about 5 years ago)
- Last Synced: 2025-06-23T03:12:33.221Z (4 months ago)
- Topics: android, android-library, animation, library, recyclerview
- Language: Kotlin
- Homepage:
- Size: 674 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Animated Recycler View
Animated Recycler View Android Library
## Download
> build.gradle
```groovy
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```### Support Library
```groovy
implementation 'com.github.prongbang:animatedrecyclerview:1.0.5'
```### AndroidX
```groovy
implementation 'com.github.prongbang:animatedrecyclerview:2.0.0'
```## How to use
> GroupAdapter.kt
```kotlin
class GroupAdapter(private val context: Context) : AnimatedRecyclerView.Adapter() {private var onClickListener: OnClickListener? = null
private var mGroups = ArrayList()fun setData(mGroups: ArrayList) {
this.mGroups = mGroups
notifyDataSetChanged()
}override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val v = LayoutInflater.from(context).inflate(R.layout.item_group, parent, false)return ViewHolder(v)
}override fun onBindViewHolder(holder: ViewHolder, position: Int) {
super.onBindViewHolder(holder, position)holder.onBind(context, mGroups[position])
}override fun getItemCount(): Int {
return mGroups.size
}inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val view = itemView
private val tvName = itemView.findViewById(R.id.tvName)fun onBind(context: Context, group: String) {
tvName.text = group
view.setOnClickListener {
onClickListener?.onClick(it, group)
}
view.setBackgroundColor(generateColor())
}
}private fun generateColor(): Int {
val red = (Math.random() * 200).toInt()
val green = (Math.random() * 200).toInt()
val blue = (Math.random() * 200).toInt()
return Color.rgb(red, green, blue)
}fun setOnClickListener(onClickListener: OnClickListener) {
this.onClickListener = onClickListener
}interface OnClickListener {
fun onClick(v: View, group: String)
}
}
```> MainActivity.kt
```kotlinval adapter = GroupAdapter(this)
adapter.setOnClickListener(object : GroupAdapter.OnClickListener {
override fun onClick(v: View, group: String) {
Log.i(MainActivity::class.java.simpleName, group)
}
})
rvGroupName.layoutManager = GridLayoutManager(this, 4)
rvGroupName.adapter = adapter// group data
val groups = ArrayList()
groups.add("A")
groups.add("B")
groups.add("C")
groups.add("D")
groups.add("E")
groups.add("F")
groups.add("G")
groups.add("H")
groups.add("I")
groups.add("J")
groups.add("K")
groups.add("L")
groups.add("M")
groups.add("N")
groups.add("O")
groups.add("P")
groups.add("Q")
groups.add("R")
groups.add("S")
groups.add("T")
groups.add("U")
groups.add("V")
groups.add("W")
groups.add("X")
groups.add("Y")
groups.add("Z")
adapter.setData(groups)```
> activity_main.xml
```xml```
> item_group.xml
```xml
```
### Thank