###Upgrade Notes
WARNING
- If you use the MaterialDrawer or the AboutLibraries you will need a compatible release of those for it to work
- The FACTORY within the items is no longer required and replaced by a much simpler approach. Remove the old FACTORY and it's methods, and implement the
getViewHoldermethod
@Override
public ViewHolder getViewHolder(View v) {
return new ViewHolder(v);
}
- If you implemented your own
Itemusing theIIteminterface instead theAbstractItemyou will now also have to implementattachToWindowanddetachFromWindow
- The reflection based
GenericItemAdapterCTOR (with the 2 classes as overload) was removed. Please use the CTOR using aFunction
- This release brings minor changes to the
IIteminterface. Please update MaterialDrawer and AboutLibraries too if you use them. - Starting with this version there is now the
coreand thecommonsdependency. Which make theFastAdaptereven slimmer if you want to use the basics.
QUICK UPGRADE
- The
List payloadsparam in theonBindViewHoldermethod was changed toList<Object> payloads - The FastAdapter is now split into smaller dependencies
com.mikepenz:fastadapter: just contains the basics (noFastItemAdapterfor example)com.mikepenz:fastadapter-commons: this one contains theFastItemAdapterand more useful common helper classes (please make sure to update the imports as these classes moved tocom.mikepenz.fastadapter.commons.*)com.mikepenz:fastadapter-extensions: comes with additional utils and helpers which bring allow more complex and advanced implementations
- This release brings new interfaces, and many changes to the expandable behavior. There is now also a
unbindViewmethod you have to implement for yourIItems.
SHORT OVERVIEW
- If you have items implemented by using the interface you have to implement the new methods (unbindView)
- If you have expandable items make sure to adjust the generic type definitions as metioned below. Check out the
AbstractExpandableItemto simplify this for you - If you use the
MaterialDrawer, theAboutLibrariesin your project, please make sure to update them so the changed interfaces do not cause conflicts
DETAILED
- New
unbindViewmethod was added to theIItem--> This method is called when the current item is no longer set and before theViewHolderis used for the next item - You should move your view resetting logic here, or for example glide image loading canceling
IExpandablegeneric types changes- it is now required to define the type which will be used for the subItems. This can be an implementation or
ISubItem. We now require this, as we will keep the references between childs, and parents. - this allows more optimizations, and many additional usecases
- New
ISubIteminterface added - items serving as subitems, have to implement this.
- New
AbstractExpandableItemadded, which combinesIExpandableandISubItemwith anAbstractItemto simplify your life - A new
SubItemUtilwas introduced which simplifies some use cases when working with expandable / collapsing lists
Extensions
- new
EndlessRecyclerOnTopScrollListeneravailable - new
IExtendedDraggableandDragDropUtilintroduced - new
RangeSelectorHelperintroduced
- This release bring a breaking interface change. Your items now have to implement
bindView(ViewHolder holder, List payloads)instead ofbindView(VH holder). - The additional payload can be used to implement a more performant view updating when only parts of the item have changed. Please also refer to the
DiffUtilswhich may provide the payload.
- Dropping support for API < 14. New
MinSdkVersionis 14
- the
IExpandableinterface has a new methodisAutoExpandingwhich needs to be implemented (default valuetrue). This allows to disable the auto toggling ofExpandableitems in theFastAdapterwhich is a problem for custom behaviors. Like issue #157
- with v1.4.0 by default a FastAdapter is now
withSelectable(false)(for normal lists) if you have selection enabled in your list, addwithSelectable(true)to yourFastAdapter,FastItemAdapteror `GenericFastItemAdapter``