v5.0.0-b8
Pre-release
Pre-release
Deprecation and Refactoring
- Refactoring behaviour of
setPermanentDelete()
: default value starts withtrue
. Creating theUndoHelper
instance, the value will be set tofalse
automatically. - Refactored
shouldAnimate
default value fromtrue
tofalse
. Items are not animated anymore by default, you need to enable the scrolling animations with.setAnimationOnScrolling(true)
. - When
setOnlyEntryAnimation()
is set true,shouldAnimate
is automatically set true, however when the screen is filled with last visible item,shouldAnimate
is again false. - Marked some methods with
//TODO: deprecation?
. Those methods are under evaluation and could disappear in the final release. - Enabled
shouldMoveItem()
callback inOnItemMoveListener
. - Deprecated removeItemWithDelay() with 'resetLayoutAnimation' param.
- Deprecated
getAnimators()
in favour of the new methodscrollAnimators()
inFlexibleViewHolder
. - Deprecated
animateView()
method, now it is automatically called from the adapter. - Deprecated/Moved all add animation methods from Adapter into
AnimatorHelper
.
DividerItemDecoration
- Added new method
withOffset()
. - Fixing NPE when no divider is provided.
- Fixed normal item offset.
Improvements
- Added
@since
for all methods. - Added new method
getSectionItemPositions()
. It resolves #132. - Added new method
setAnimateToLimit()
. - Improved performance while filtering high numbers of items. This resolves #133 part 1: call
notifyDataSetChanged()
. Animation during filtering will be performed if the total items are below the limit of 600 (modifiable value) "current items" OR "filtered items"; Above this limit,notifyDataSetChanged()
will be called with no animation. Note:updateDataSet()
is also affected by this limit, it improves performance during the refresh operation with big list. - Option to display entry animation only. See #125.
- Method in
FlexibleViewHolder.setDragHandleView()
is not final anymore! - Improvement performance when resetting filter flags for Expandables.
- Upgrade to Android N (API 24), SupportLib 24.0.0, Java8.
- Reviewed the comments for AutoMap.
- Added new method
setNotifyMoveOfFilteredItems()
. - Experimental: Added AsyncTask with synchronization animations. Fixed #133 part 2: AsyncFilter. Really lot of items can be filtered in a very short time. Adapter need to be configured accordingly, new Fragment in the demoApp helps to understand how to.
- Experimental:
updateDataSet()
is now run Asynchronously too. - Experimental: Improved performance when
collapseAll()
with big list. - Experimental: Improved performance on
showAllHeader()
andhideAllHeaders()
. - Added Payload enumeration, this resolves #134.
- New methods in
Utils
classfindFirst/LastCompletelyVisibleItemPosition()
. - #144 - Adapter initialization and
updateDataSet()
with no notifyItemXXX() on headers. - #146 - Improved calls to
setDisplayHeadersAtStartUp()
andshowAllHeaders()
to avoid duplication of headers by a non correct initialization. As consequence 2 effects are now possible when callingsetDisplayHeadersAtStartUp()
read method comment, documentation will follow. - Adapter can be initialized with a null or empty list:
addItems()
can be safely called, but no scrolling animation on loading can be performed. - Expand items at startup can now expand all Levels of Expandable, if expanded is initially set true.
updateDataSet()
is also compatible with the last status of sub levels. - Method
getItemId()
now returnsitem.hashCode()
of the current position. - Added
stableIds
to theFlexibleAdapter
constructor. - Added AnimationDuration (configurable) for Drag and Swipe.
- #151 - Added
SmoothScrollStaggeredLayoutManager
+ configurable millisecondsPerInch. - Added
setUseStepDelay()
to synchronize the animations all together at startup. - Added
animators()
method inFlexibleViewHolder
for scroll animations. - Added
FlexibleItemAnimator
class andAnimatedViewHolder
interface for add/remove animations. - Added
AnimatorHelper
.
Fixes
- Fixed #130 - An unnecessary call to super.onBindViewHolder() caused loop-calls throwing StackOverflowError. As consequence, method
onLoadMore()
is now protected to be manually called only when METHOD B (binding items in classic way) is implemented. - Fixed #128 -
getStickySectionHeadersHolder()
should return a ViewGroup with LayoutParams coherent and initialized by the user who knows how these params has to be initialized. An exception will be raised if params are nulls. - Fixed #126 -
onUpdateEmptyView()
is not being correctly called inupdateDataSet() if size > 0
. - Fixed #121 - Sticky header glitch when header layout has height set to "wrap_content"
- Modified FastScroller bubble padding.
- Fixed #143 -
calculatePositionFor()
doesn't work correctly when used foraddItem()
. - Fixed #142 - 1st item is displayed under sticky header at start up and after
updateDataSet()
. - Fixed #139 - Sticky header is not resized on automatic configuration change.
- Fixed #135 - The AsyncTask changes made obsolete the fix of missing parenthesis generating a NPE.
- Fixed filter: when no headers are displayed, headers were displayed too. Now the result is coherent with the last state.
- Fixed some NPEs when null is passed to the constructor.
- Fixed scrolling animation flags.
- Fixed #148 - Support for Drag&Drop in GridLayout with Automatic header linkage and headers rebound.
- Fixed #143 -
calculatePositionFor()
doesn't work correctly when used withaddItem()
. - Fixed #161 - ContextThemeWrapper cannot be cast to Activity when "theme" attribute is used in the layout in combination with
getStickySectionHeadersHolder()
. - Fixed #173 - Inconsistency detected with asynchronous item update.
- When sticky header is enabled, element header at position 0, can now be dragged: layout for sticky header is cleared out, before it was not possible.
Demo App
- BackPressed now goes back to overall View. App entry fade animation?
- StaggeredLayout is the default at startUp.
- Using Method B to bind the FragmentOverall instead of the AutoMap view item interfaces.
- Fixed bug that triggered the filter when searchView is initially opened.
- Experimental: Added a real(!)
SplashActivity
. - Added new
FragmentAsyncFilter
, here you can customize the Adapter and the database dynamically. - Added
DatabaseType
enumeration and createdConfigurationDatabase
. - Changed layout for drawer and updated the menu with check boxes.
- Reviewed menu items options with check boxes.
- Added menu item for toggleFastScroller()
- Added menu items persistent through some example fragments.
- For update data set (refresh to see different result);
- For scrolling animation (reopen the page from the drawer menu to see different result).
- More JUnit test for ItemComparator
- Fixed NPE when closing app before the execution of Runnable.
- Resolved the problem when Layout for sticky header is customized and the header disappeared.
- Added example for Item Animators and Scroll Animations, reviewed the whole Demo App to fullfil the new requirements for animations.