:mega: When initially Android:registered: team introduced the RecyclerView widget, we had to implement a custom Adapter in several applications, again and again to provide the items for our views.
We didn't know how to add selection and to combine all the use cases in the same Adapter. Since I created this library, it has become easy to configure multiple views and now, nobody wants to use a ListView anymore.
The idea behind is to regroup multiple features in a unique library, without the need to customize and import several third libraries not compatible among them.
The FlexibleAdapter helps developers to simplify this process without worrying too much about the Adapter anymore. It's easy to use, it has predefined logic for different situations and prevents common mistakes.
This library is configurable and it guides the developers to create a better user experience and now, even more with the new features.
repositories {
jcenter()
}
dependencies {
// Using JCenter
implementation 'eu.davidea:flexible-adapter:5.1.0'
implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
implementation 'eu.davidea:flexible-adapter-livedata:1.0.0-b3'
// From 1.0.0-b3, library is compiled with data binding v2
implementation 'eu.davidea:flexible-adapter-databinding:1.0.0'
}
Flexible Adapter | UI | Live Data | Data Binding |
---|---|---|---|
5.1.0 |
1.0.0 |
1.0.0-b3 |
1.0.0 |
I strongly recommend to read the Wiki pages, where you can find a comprehensive Tutorial.
Feel free to contribute and ask!
Active discussions:
Some simple features have been implemented, thanks to some Blogs (see at the bottom of the page), merged and methods have been improved for speed and scalability.
SelectableAdapter
class. It provides selection features and it's able to maintain the state after the rotation: you just need to call the onSave/onRestore methods from the Activity!AnimatorAdapter
class has been added to give some animation at startup and when user scrolls.FlexibleAdapter
. It holds and handles the main list, performs actions on all different types of item paying attention at the adding and removal of the items, as well as the new concept of "selection coherence".You can download the latest demo App from the latest release page OR run it with the emulator.
This Wiki page will give you a short briefing of the demo App.
v5.1.0 - 2018.09.30
v5.0.6 - 2018.09.16 | v5.0.5 - 2018.06.03 | v5.0.4 - 2018.05.01 | v5.0.3 - 2018.03.23 | v5.0.2 - 2018.03.17 | v5.0.1 - 2018.03.11 | v5.0.0 - 2018.03.04
Item half swipe cannot be implemented due to how the android.support.v7.widget.helper.ItemTouchHelper
is done, also clicks on rear view are not possible, same reason.
Half swipe can be done with others means, please see issues #98 and #100. See also commits of Apr 25, 2016.
This library is currently free to use and modify, if you would like to say Thank You by donating any amount, you're very welcome! Here the link to PayPal.me:
AnimatorAdapter
.It will be a pleasure to add your App here, once it is published.
Module.org | Neuronizer | Nextcloud Talk | Socio - Shake and Connect! | Shibagram | BNVR Client
Copyright 2015-2018 Davide Steduto, Davidea Solutions Sprl
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright 2016-2017 AndroidDeveloperLB, Davide Steduto & Arpinca
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.