thepacific / Adapter
A quick adapter library for RecyclerView, GridView, ListView, ViewPager, Spinner
Stars: ✭ 376
Programming Languages
kotlin
9241 projects
Projects that are alternatives of or similar to Adapter
Overscroll Decor
Android: iOS-like over-scrolling effect applicable over almost all scrollable Android views.
Stars: ✭ 2,671 (+610.37%)
Mutual labels: recyclerview, viewpager, listview, gridview
Superadapter
[Deprecated]. 🚀 Adapter(BaseAdapter, RecyclerView.Adapter) wrapper for Android. 一个Adapter同时适用RecyclerView、ListView、GridView等。
Stars: ✭ 638 (+69.68%)
Mutual labels: adapter, recyclerview, listview, gridview
adapster
Android library designed to enrich and make your RecyclerView adapters more SOLID
Stars: ✭ 17 (-95.48%)
Mutual labels: adapter, listview, recyclerview
Kotlin Adapter
🔥 RecyclerView,AbsListView适配器, 支持多种视图样式, 支持吸顶、侧滑删除、拖拽效果
Stars: ✭ 132 (-64.89%)
Mutual labels: adapter, recyclerview, listview
Imageviewer
🔮图片浏览器,支持图片手势缩放、拖拽等操作,`自定义View`的模式显示,自定义图片加载方式,更加灵活,易于扩展,同时也适用于RecyclerView、ListView的横向和纵向列表模式,最低支持版本为Android 3.0及以上...
Stars: ✭ 363 (-3.46%)
Mutual labels: recyclerview, listview, gridview
Placeholderview
This library provides advance views for lists and stacks. Some of the views are build on top of RecyclerView and others are written in their own. Annotations are compiled by annotation processor to generate bind classes. DOCS -->
Stars: ✭ 2,104 (+459.57%)
Mutual labels: recyclerview, listview, gridview
Tableview
TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.
Stars: ✭ 2,928 (+678.72%)
Mutual labels: adapter, recyclerview, gridview
android-page
android 分页列表数据加载引擎,主要封装了android分页列表数据加载的各个组件,如果你有一个需要分页加载的List列表,都可以使用此框架实现。
Stars: ✭ 15 (-96.01%)
Mutual labels: listview, recyclerview, gridview
GenericAdapter
⛳️ Easy to use android databinding ready recyclerview adapter
Stars: ✭ 26 (-93.09%)
Mutual labels: adapter, listview, recyclerview
Commonadapter
一个适用于ListView/GridView/RecyclerView的Adapter库,简化大量重复代码,支持多种布局,可自定义图片加载的实现。
Stars: ✭ 219 (-41.76%)
Mutual labels: adapter, recyclerview, listview
Countdowntask
⌛️A countdown library for Android.
Stars: ✭ 64 (-82.98%)
Mutual labels: recyclerview, listview, gridview
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (-67.02%)
Mutual labels: adapter, listview, recyclerview
Google Books Android Viewer
Android library to bridge between RecyclerView and sources like web page or database. Includes demonstrator (Google Books viewer)
Stars: ✭ 37 (-90.16%)
Mutual labels: adapter, recyclerview, listview
Easyadapter
Android 轻量级适配器,简化使用,适应所有的AbsListView、RecyclerView。支持HeaderView与FooterView~
Stars: ✭ 160 (-57.45%)
Mutual labels: adapter, recyclerview, listview
GenericRecyclerAdapter
Easiest way to use RecyclerView. Reduce boilerplate code! You don't need to write adapters for listing pages anymore!
Stars: ✭ 53 (-85.9%)
Mutual labels: adapter, listview, recyclerview
Boardview
A draggable boardview for java android (Kanban style)
Stars: ✭ 309 (-17.82%)
Mutual labels: adapter, recyclerview, listview
recyclerview-list-drag-and-drop
No description or website provided.
Stars: ✭ 50 (-86.7%)
Mutual labels: listview, recyclerview
GhostAdapter
No description or website provided.
Stars: ✭ 15 (-96.01%)
Mutual labels: adapter, recyclerview
react-recycled-scrolling
Simulate normal scrolling by using only fixed number of DOM elements for large lists of items with React Hooks
Stars: ✭ 26 (-93.09%)
Mutual labels: listview, recyclerview
react-native-nlist
原生Listview Native lListView react-native encapsulation Memory recovery reusing High performance
Stars: ✭ 60 (-84.04%)
Mutual labels: listview, recyclerview
Adapter
A quick adapter library for RecyclerView, GridView, ListView, ViewPager, Spinner. It abstracts the boilerplate of item view types, item layouts, viewholders, span sizes , and more, in order to simplify building complex screens with multiple view types.
If you are using version 2.x please check here
Features
- Support ViewBinding、DataBinding、DefaultBinding.
- Multiple view types without any ViewHolder
- Simple, flexible
Setup
implementation 'com.github.thepacific:adapter:{lastVersion}'
Usage
class MyType1(val data: Any) : SimpleRecyclerItem()
class MyType2(val data: Any) : SimpleRecyclerItem()
class MyType3(val data: Any) : SimpleRecyclerItem()
val adapter = RecyclerAdapter()
adapter.onClickListener = View.OnClickListener { }
adapter.imageLoader = adapter.imageLoader = object : AdapterImageLoader {}
val item1 = MyType1(Any())
val list2 = mutableListOf<MyType2>()
val list3 = mutableListOf<MyType3>()
adapter.add(item1)
adapter.addAll(list2.toList())
adapter.addAll(list3.toList())
Item
Extend SimpleRecylcerItem. Optionally, you may implement RecyclerItem
class MovieItem(val data: Movie) : SimpleRecyclerItem() {
override fun getLayout(): Int {
return R.layout.item_movie
}
override fun bind(holder: AdapterViewHolder) {
val binding = holder.binding(ItemMovieBinding::bind)
binding.itemPosterTitle.text = data.name
binding.itemPosterRunningTime.text = data.showTime
// attach UI listeners
holder.attachOnClickListener(R.id.item_poster_post)
holder.attachOnLongClickListener(R.id.item_poster_post)
holder.attachOnCheckedChangeListener(R.id.item_poster_post)
holder.attachOnTouchListener(R.id.item_poster_post)
holder.attachImageLoader(R.id.item_poster_post)
holder.attachTextChangedListener(R.id.item_poster_post)
holder.detachTextChangedListener(R.id.item_poster_post)
}
override fun bindPayloads(holder: AdapterViewHolder, payloads: List<Any>?) {
}
override fun unbind(holder: AdapterViewHolder) {
}
// You may override other methods
}
Listeners
Set OnClickListener、OnLongClickListener、OnTouchListener、OnCheckedChangeListener、ImageLoader and TextWatcher
class HomeFragment : Fragment() {
private val adapter = RecyclerAdapter()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// adapter.setOnTouchListener(OnTouchListener listener);
// adapter.setOnLongClickListener(OnLongClickListener listener);
// adapter.setOnCheckedChangeListener(OnCheckedChangeListener listener);
adapter.onClickListener = View.OnClickListener { v ->
// AdapterUtils
val holder: AdapterViewHolder = AdapterUtils.getHolder(v)// get ViewHolder
val textView = holder.itemView.findViewById<TextView>(R.id.item_poster_title)// find view
val item: MovieItem = holder.item()// get Item
val itemCount: Int = holder.itemCount// get adapter data size
val position = holder.bindingAdapterPosition // get item position
}
// load image
adapter.imageLoader = object : AdapterImageLoader {
override fun onImageLoad(imageView: ImageView, holder: AdapterViewHolder) {
GlideApp.with(this@HomeFragment)
.load(holder.item<MovieItem>().data.img)
.into(imageView)
}
}
// TextWatcher
adapter.textChangedListener = object : AdapterTextWatcher {
override fun beforeTextChanged(
v: TextView,
s: CharSequence?,
start: Int,
count: Int,
after: Int,
holder: AdapterViewHolder
) {
// AdapterUtils
}
override fun onTextChanged(
v: TextView,
s: CharSequence?,
start: Int,
before: Int,
count: Int,
holder: AdapterViewHolder
) {
// AdapterUtils
}
override fun afterTextChanged(v: TextView, s: Editable, holder: AdapterViewHolder) {
// AdapterUtils
}
}
}
}
Others
data set changed callback , it's useful to show or hide empty view
adapter.setOnDataSetChanged(OnDataSetChanged onDataSetChanged);
License
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].