Skip to content

📟Very easy endless scrolled, onClick item and simple use recyclerView adapter binding

License

Notifications You must be signed in to change notification settings

farshadrezaee/CustomAdapterRecyclerview

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom Adapter RecyclerView

API Android Arsenal

Very simple use android recyclerView adapter and endlessScrolled in android support library recyclerView

  • Clean uses
  • Ability add custom layout in progress pagination and default layout
  • Support linear, Grid, StaggeredGrid LayoutManger for endless
  • Manage Loading and Error Layout in The List Row
screenShot:

screen show

gradle :
  implementation 'androidx.recyclerview:recyclerview:$VERSION'
  implementation 'io.github.farshidroohi:customAdapterRecycleView:2.0.2'

Example

Sample Adapter


class MyAdapter : AdapterRecyclerView<String?>(R.layout.my_item, R.layout.progress_view, R.layout.item_error,R.id.btnTrayAgain) {

    override fun onBindView(viewHolder: ItemViewHolder, position: Int, context: Context, element: String?) {
        val itemView = viewHolder.itemView
        itemView.txt_title.setText("$element $position")
    }

}
    val myAdapter = MyAdapter()

           // onClick Error Button
           myAdapter.onRetryClicked = {
               myAdapter.loadingState()
               // fake request or load other items...
               recyclerView.postDelayed({
                   myAdapter.loadedState(tempItems)
               }, 2000)
           }

           // set Data in List
           myAdapter.loadedState(tempItems)

           recyclerView.layoutManager = GridLayoutManager(this@MainActivity, 2)
           recyclerView.adapter = myAdapter


           // set onLoad More Listener for Pagination
           recyclerView.onLoadMoreListener {
               if (myAdapter.mustLoad) {
                   myAdapter.loadingState()
                   // failed state
                   recyclerView.postDelayed({
                       myAdapter.failedState()
                   }, 2000)
               }
           }


           // Set onClick Item Listener
           recyclerView.onItemClickListener({ position ->
               if (position == myAdapter.itemCount - 1 && !myAdapter.mustLoad) {
                   return@onItemClickListener
               }
               Toast.makeText(applicationContext, "item click :  ${myAdapter.getItem(position)}$position", Toast.LENGTH_SHORT).show()
           }, { position ->
               if (position == myAdapter.itemCount - 1 && !myAdapter.mustLoad) {
                   return@onItemClickListener
               }
               Toast.makeText(applicationContext, "item long click :  ${myAdapter.getItem(position)}$position", Toast.LENGTH_SHORT).show()
           })

    
    // Generate Fake Data For List
    private val tempItems: List<String>
      get() {
        val items: MutableList<String> = ArrayList()
        for (i in 0..21) {
          items.add("item ")
        }
        return items
      }

About

📟Very easy endless scrolled, onClick item and simple use recyclerView adapter binding

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 100.0%