Flattened Android PagedListAdapter
for speedy adaptation.
implementation "com.geniewits.pagedlambdalist:paged-lambda-list:1.1.0"
Same as how we initialize a PagedListAdapter
and PagingDataAdapter
, a DiffUtil.ItemCallback<T>
implementation is required.
val adapter = PagedLambdaAdapter<Any>(differ)
or
val adapter = PagingLambdaAdapter<Any>(differ)
- Single view type
adapter.map(
create = { MyViewHolder(it) { onClick(it) } },
bind = { holder, item -> (holder as MyViewHolder).onBind(item) }
)
- Multiple view types
adapter
.map(
{ it is A },
{ ViewHolderA(it) },
{ holder, item -> (holder as ViewHolderA).onBind(item) }
)
.map(
{ it is B },
{ ViewHolderB(it) },
{ holder, item -> (holder as ViewHolderB).onBind(item) }
)
- Multiple view types with placeholder
adapter
.map(...)
.map(
create = { PlaceholderViewHolder() }
bind = { holder, item -> (holder as PlaceholderViewHolder).onBind(item) }
)
Look over here instead.