一、ListView
-
android-pulltorefresh
一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView、ViewPager、WebView、ExpandableListView、GridView、ScrollView、Horizontal ScrollView、Fragment 上下左右拉动刷新,比下面 johannilsson 那个只支持 ListView 的强大的多。并且它实现的下拉刷新 ListView 在 item 不足一屏情况下也不会显示刷新提示,体验更好。
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true
APP 示例:新浪微博各个页面 -
android-pulltorefresh-listview
下拉刷新 ListView,这个被很多人使用的项目实际有不少 bug,推荐使用 android-Ultra-Pull-to-Refresh
项目地址:https://github.com/johannilsson/android-pulltorefresh
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refresh-listview-demo.apk?raw=true -
android-Ultra-Pull-to-Refresh
下拉刷新,第一个项目已经停止维护了,并且使用起来相对复杂,定制性也差。这个是替代和改良方案。这个继承于 ViewGroup 可以包含任何 View。功能甚至比 SwipeRefreshLayout 强大。使用起来非常简单。良好的设计,如果你想定制自己的 UI 样式,非常简单,就像给 ListView 加一个 Header View 那么简单。支持API LEVEL >= 8
项目地址:https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh
原理剖析文档:[android-Ultra-Pull-to-Refresh](https://a.codekk.com/detail/Android/Grumoon/android-Ultra-Pull-To-Refresh 源码解析)
Demo 地址:https://raw.githubusercontent.com/liaohuqiu/android-Ultra-Pull-To-Refresh/master/ptr-demo.apk
效果图:
http://srain-github.qiniudn.com/ultra-ptr/release-to-refresh.gif
http://srain-github.qiniudn.com/ultra-ptr/auto-refresh.gif
http://srain-github.qiniudn.com/ultra-ptr/store-house-string-array.gif -
Android-PullToRefreshRecyclerView
支持下拉刷新的RecyclerView,同时支持滑动到底部自动加载数据、给RecyclerView添加Header。并且不更改原有RecyclerView的逻辑。
项目地址:https://github.com/HomHomLin/Android-PullToRefreshRecyclerView Demo地址:https://github.com/HomHomLin/Android-PullToRefreshRecyclerView/blob/master/sample.apk -
DragSortListView
拖动排序的 ListView,同时支持 ListView 滑动 item 删除,各个 Item 高度不一、单选、复选、CursorAdapter 做为适配器、拖动背景变化等
项目地址:https://github.com/bauerca/drag-sort-listview
Demo 地址:https://play.google.com/store/apps/details?id=com.mobeta.android.demodslv
APP 示例:Wordpress Android -
SwipeListView
支持定义 ListView 左右滑动事件,支持左右滑动位移,支持定义动画时间
项目地址:https://github.com/47deg/android-swipelistview
Demo 地址:https://play.google.com/store/apps/details?id=com.fortysevendeg.android.swipelistview
APP 示例:微信 -
Android-SlidingLayout
实现类似QQ、微信ListView和WebView的上拉下拉弹跳效果和iOS的ListView的果冻效果。兼容Android自带库和兼容库的所有View组件,包括RecyclerView、ListView、ScrollView以及WebView等等。
项目地址:https://github.com/HomHomLin/SlidingLayout/。
Demo地址:https://github.com/HomHomLin/SlidingLayout/tree/master/demo -
SlideAndDragListView
支持ListView的Item的拖动排序、左右滑动事件,可自定义左右滑动显示文字、图标、位移,同时支持onItemClick、onItemLongClick等监听器,提供丰富的回调接口。
项目地址:https://github.com/yydcdut/SlideAndDragListView
Demo 地址:https://github.com/yydcdut/SlideAndDragListView/blob/master/apk/sdlv.apk?raw=true
APP 示例:Android 手机QQ 5.0
效果图: -
Android-SwipeToDismiss
滑动 Item 消失 ListView,支持 3.0 以下版本见:https://github.com/JakeWharton/SwipeToDismissNOA
项目地址:https://github.com/romannurik/Android-SwipeToDismiss
Demo 地址:https://github.com/JakeWharton/SwipeToDismissNOA/SwipeToDismissNOA.apk/qr_code -
RecyclerViewSwipeDismiss
轻量级支持 support-v7 中的 RecyclerView 的滑动删除(Swipe to dismiss)行为,不需要修改源代码,只要简单的绑定onTouchListener
项目地址:https://github.com/CodeFalling/RecyclerViewSwipeDismiss
效果图: -
QuickSideBar
帮助快速查阅对应分组的侧边栏,可以配合任意列表,demo中给出配合RecyclerView(浮动分组使用stickyheadersrecyclerview)。
项目地址:https://github.com/saiwu-bigkoo/Android-QuickSideBar
效果图: -
async-expandable-list 支持异步加载子列表的 ExpandableListView,包括CollectionView可以显示小标题的列表 项目地址:https://github.com/Ericliu001/async-expandable-list
-
PinnedHeaderExpandableListView
首先它是一个 ExpandableListView,但是它的头部可以固定,其次,在它的上面还有一个头部可以来回伸缩
项目地址:https://github.com/singwhatiwanna/PinnedHeaderExpandableListView
效果图:
APP 示例:百度手机卫士垃圾清理界面 -
StickyListHeaders
GroupName 滑动到顶端时会固定不动直到另外一个 GroupName 到达顶端的 ExpandListView,支持快速滑动,支持 Android2.3 及以上
项目地址:https://github.com/emilsjolander/StickyListHeaders
效果图:
APP 示例:Android 4.0 联系人 -
pinned-section-listview
GroupName 滑动到顶端时会固定不动直到另外一个 GroupName 到达顶端的 ExpandListView
项目地址:https://github.com/beworker/pinned-section-listview
效果图: -
PinnedHeaderListView
GroupName 滑动到顶端时会固定不动直到另外一个 GroupName 到达顶端的 ExpandListView
项目地址:https://github.com/JimiSmith/PinnedHeaderListView -
QuickReturn
ListView/ScrollView 的 header 或 footer,当向下滚动时消失,向上滚动时出现
项目地址:https://github.com/lawloretienne/QuickReturn
Demo 地址:https://play.google.com/store/apps/details?id=com.etiennelawlor.quickreturn -
QuickReturnHeader
ListView/ScrollView 的 header 或 footer,当向下滚动时消失,向上滚动时出现
项目地址:https://github.com/ManuelPeinado/QuickReturnHeader
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/quick-return-header-demo.apk?raw=true
APP 示例:google plus -
IndexableListView
ListView 右侧会显示 item 首字母快捷索引,点击可快速滑动到某个 item
项目地址:https://github.com/woozzu/IndexableListView
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/indexable-listview.apk?raw=true
APP 示例:微信通讯录、小米联系人 -
CustomFastScrollView
ListView 快速滑动,同时屏幕中间 PopupWindows 显示滑动到的 item 内容或首字母
项目地址:https://github.com/nolanlawson/CustomFastScrollViewDemo
效果图: -
Android-ScrollBarPanel
ListView 滑动时固定的 Panel 指示显示在 scrollbar 旁边
项目地址:https://github.com/rno/Android-ScrollBarPanel
效果图: -
SlideExpandableListView
用户点击 listView item 滑出固定区域,其他 item 的区域收缩
项目地址:https://github.com/tjerkw/Android-SlideExpandableListView
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/slide-expandable-listView-demo.apk?raw=true -
JazzyListView
ListView 及 GridView item 以特殊动画效果进入屏幕,效果包括 grow、cards、curl、wave、flip、fly 等等
项目地址:https://github.com/twotoasters/JazzyListView
Demo 地址:https://play.google.com/store/apps/details?id=com.twotoasters.jazzylistview.sample
在线演示:http://lab.hakim.se/scroll-effects/ -
ListViewAnimations
带 Item 显示动画的 ListView,动画包括底部飞入、其他方向斜飞入、下层飞入、渐变消失、滑动删除等
项目地址:https://github.com/nhaarman/ListViewAnimations
Demo 地址:https://play.google.com/store/apps/details?id=com.haarman.listviewanimations
APP 示例:Google plus、Google Now 卡片式进入、小米系统中应用商店、联系人、游戏中心、音乐、文件管理器的 ListView、Ultimate、Light Flow Lite、TreinVerkeer、Running Coach、Pearl Jam Lyrics、Calorie Chart、Car Hire、Super BART、DK FlashCards、Counter Plus、Voorlees Verhaaltjes 2.0 -
DevsmartLib-Android
横向 ListView
项目地址:https://github.com/dinocore1/DevsmartLib-Android
Demo 地址:https://github.com/Trinea/TrineaDownload/blob/master/horizontal-listview-demo.apk?raw=true -
TwoWayView
横向 ListView 的效果,继承自 AdapterView
项目地址:https://github.com/lucasr/twoway-view -
HorizontalVariableListView
支持 Item 宽度不一致的 ListView
项目地址:https://github.com/sephiroth74/HorizontalVariableListView -
LinearListView
用 LinearLayout 实现的 ListView,可解决多个 ListView 并存等问题。目前自己也有需要,等亲自尝试过后会再具体介绍
项目地址:https://github.com/frankiesardo/LinearListView -
MultiChoiceAdapter
支持多选的 ListView Adapter
项目地址:https://github.com/ManuelPeinado/MultiChoiceAdapter
Demo 地址:https://play.google.com/store/apps/details?id=com.manuelpeinado.multichoiceadapter.demo -
EnhancedListView
支持横向滑动删除列表项以及撤销删除的 ListView,该项目的前身是SwipeToDismissUndoList
项目地址:https://github.com/timroes/EnhancedListView
Demo 地址:https://play.google.com/store/apps/details?id=de.timroes.android.listviewdemo&rdid=de.timroes.android.listviewdemo -
ListBuddies
自动滚动的双列 ListView ,两个 ListView 滚动速度不一致,有视差效果
项目地址:https://github.com/jpardogo/ListBuddies
Demo 地址:https://play.google.com/store/apps/details?id=com.jpardogo.android.listbuddies
效果图: -
SwipeMenuListView
针对 ListView item 的侧滑菜单
项目地址:https://github.com/baoyongzhang/SwipeMenuListView
效果图:
APP 示例:手机 QQV5.0 -
PagingListView
分页加载的 ListView。当滑动到 ListView 底部最后一个元素时,显示一个进度行,然后加载下一页数据,并显示。
项目地址:https://github.com/nicolasjafelle/PagingListView -
PullZoomView
支持下拉时 HeaderView 缩放的 ListView、ScrollView
项目地址:https://github.com/Frank-Zhu/PullZoomView
效果图: -
PullToZoomInListView
滑动 ListView 时使其 HeaderView 跟随滑动缩放
项目地址:https://github.com/matrixxun/PullToZoomInListView
效果图: -
CalendarListview
实现每个月一行日历效果的 ListView
项目地址:https://github.com/traex/CalendarListview
原理剖析文档:CalendarListview
效果图: -
sticky-headers-recyclerview
GroupName 滑动到顶端时会固定不动直到另外一个 GroupName 到达顶端的 ListView,采用 support-v7 中的 RecyclerView 实现
项目地址:https://github.com/timehop/sticky-headers-recyclerview -
PullSeparateListView
到达顶部或底部继续拉动时,实现 Item 间的相互分离,两种模式:(1) 全部分离的模式,即屏幕内所有 Item 都会分离 (2)部分分离模式,以点击位置为分界点,部分 item 分离
项目地址:https://github.com/chiemy/PullSeparateListView
效果图: -
ExpandableLayout
Header 和 Content Item 都可以展开的 ExpandableListview
项目地址:https://github.com/traex/ExpandableLayout -
PagedHeadListView
支持 paginated header 以及 material page indicator 的 ListView.
项目地址:https://github.com/JorgeCastilloPrz/PagedHeadListView
效果图: -
CustomSwipeListView
支持左滑弹出自定义菜单,右滑删除且允许撤销,同时可以自定义滑动动画时间和滑动触发事件的时机等。
项目地址:https://github.com/xyczero/Android-CustomSwipeListView
Demo 地址:Download here
效果图: -
Pull-to-Refresh.Rentals-Android
提供一个简单可以自定义的下拉刷新实现,Yalantis 出品。
项目地址:https://github.com/Yalantis/Pull-to-Refresh.Rentals-Android
效果图: -
ScrollerCalendar
实现每行显示一年的 12 个月份的 RecyclerView 年历
项目地址:https://github.com/guanchao/ScrollerCalendar
效果图: -
ExtractWordView
一个可以提取单词的 ListView,支持"放大镜"效果。
项目地址:https://github.com/jcodeing/ExtractWordView
Demo 地址:Download here -
FlyRefresh
支持 ListView, GridView, RecyclerView, ScrollView 的下拉刷新
项目地址:https://github.com/race604/FlyRefresh
效果图: -
MVCHelper
实现下拉刷新,滚动底部自动加载更多,分页加载,自动切换显示网络失败布局,暂无数据布局,支持任意 view,真正的 MVC 架构
支持切换主流下拉刷新框架 Android-PullToRefresh-Library,android-Ultra-Pull-To-Refresh-library,SwipeRefreshLayout
项目地址:https://github.com/LuckyJayce/MVCHelper
Demo 地址:https://github.com/LuckyJayce/MVCHelper/blob/master/raw/MVCHelper_Demo.apk?raw=true -
RecyclerViewSwipeDismiss
支持滑动 Item 操作、点击展开、拖动排序、展开后拖动排序等特性的 RecyclerView
项目地址:https://play.google.com/store/apps/details?id=com.h6ah4i.android.example.advrecyclerview
视频:http://www.youtube.com/watch?feature=player_embedded&v=S7cSwMArjUQ -
WaterDropListView
模仿 iOS 下拉刷新“水滴”效果,支持下拉刷新和上拉加载
项目地址:https://github.com/THEONE10211024/WaterDropListView
效果图: -
PopupListView
實現ListItem 點擊後置頂並可顯示客製化添加的item的內部View 的ListView
项目地址:https://github.com/s8871404/PopupListView
Demo 地址:https://play.google.com/store/apps/details?id=com.baobomb.popuplistview_sample
效果图: -
CircleRefreshLayout
一个包含有趣的动画的自定义下拉刷新布局
项目地址:https://github.com/tuesda/CircleRefreshLayout
效果图: -
EasyRecyclerView
一款简单易用的EasyRecyclerView 1.提供EasyRecyclerView,不需要写太多RecyclerView的配置代码
2.提供好一个可以适配单布局和多布局的RecyclerViewAdapter
3.提供了分割线的实现类,只需要传入一个DrawableId
项目地址:https://github.com/CaMnter/EasyRecyclerView -
CanRefresh 可适配所有视图的下拉刷新上拉加载,并支持各种风格
项目地址:https://github.com/canyinghao/CanRefresh
效果图: -
NestRefreshLayout
下拉刷新及加载更多控件,支持多种View,可以自定义Header和Footer 由于实现了NestedScrollingChild和NestedScrollingParent所以与Support-Design兼容,可以配合CollapsingToolbarLayout使用
项目地址:https://github.com/anzewei/NestRefreshLayout
Demo 地址:https://github.com/anzewei/NestRefreshLayout/blob/master/ext/sample-debug.apk?raw=true -
SnappingSwipingRecyclerView 实现了类似微信读书首页的长按之后滑动删除的特效和动画项目地址:https://github.com/CarlLee/SnappingSwipingRecyclerView