Android ListView相关开源项目汇总
来源:互联网 发布:java waitfor 返回值1 编辑:程序博客网 时间:2024/05/18 01:32
在这篇blog中,我将会列出众多我收集到的与ListView相关的开源项目。因为这些项目的存在,ListView的交互性变得更友好,性能变得更加的优越。通过使用这些项目,你可以轻松的让你的ListView实现下拉刷新、拖拽排序,滑动删除等功能。
bauerca/drag-sort-listview
项目地址:https://github.com/bauerca/drag-sort-listview
通过bauerca的drag-sort-listview项目,你可以轻松的实现Listview的拖拽排序。就像下面所展示的这样
除此之外,drag-sort-listview也提供了滑动删除的功能,就像下面这样
项目的使用方法你可以参考作者的项目文档。这里需要补充的是,如果你和我一样是用的是gradle构建的话,我建议你使用下面的依赖方式,是的,这的确不是由项目作者提供的依赖库。但是由于该项目已经停止维护,所以如此使用完全没有任何问题。
repositories { maven { url 'https://github.com/Goddchen/mvn-repo/raw/master/' }}dependencies { compile 'com.mobeta.android.dslv:drag-sort-listview:0.6.1'}
47deg/android-swipelistview
项目地址:https://github.com/47deg/android-swipelistview
项目sample地址:https://github.com/47deg/android-swipelistview-sample
通过47deg的android-swipelistview项目,你可以让你的Listview实现各种与滑动相关的特效。下面这些功能,就是用android-swipelistview实现的
以上图片的功能分别是滑动Reveal,滑动删除,滑动选择。项目的使用说明请参考项目的官方文档。
johannilsson/android-pulltorefresh
项目地址:https://github.com/johannilsson/android-pulltorefresh
通过johannilsson的android-pulltorefresh项目你可以使你的listview实现下拉刷新的功能,就像下面这样。
另外一个与johannilsson/android-pulltorefresh相似的项目是erikwt/PullToRefresh-ListView
需要补充的事情是,在Android的Support中已经有了相应的组件,这也是,作者停止更新该项目的原因。
chrisbanes/Android-PullToRefresh
项目地址:https://github.com/chrisbanes/Android-PullToRefresh
通过chrisbanes的Ansdroid-PullToRefresh你可以实现Listview的下拉刷新功能。事实上,这就是johannilsson/android-pulltorefresh实现的功能。区别在于,chrisbanes/Android-PullToRefresh除了实现了ListView的下拉刷新,还实现了其他容器的下拉刷新。因此可以说,chrisbanes/Android-PullToRefresh是升级版的johannilsson/android-pulltorefresh。
chrisbanes/ActionBar-PullToRefresh
项目地址:https://github.com/chrisbanes/ActionBar-PullToRefresh
通过chrisbanes的ActionBar-PullToRefresh你可是实现ListView的下拉刷新功能。和chrisbanes/Android-PullToRefresh区别的是,chrisbanes/ActionBar-PullToRefresh是通过ActionBar的交互实现的下拉刷新,就像下面这样
timroes/SwipeToDismissUndoList
项目地址:https://github.com/timroes/SwipeToDismissUndoList 项目sample地址:https://github.com/timroes/SwipeToDismissUndoDemo
通过timroes的SwipeToDismissUndoList,你可以简单的实现Listview的滑动删除功能。这个功能在上面的几个项目中似乎都得到了实现。但是需要注意的事情是,timroes的SwipeToDismissUndoList实现了撤销删除的功能。就像下面展示的这样
timroes的SwipeToDismissUndoList的实现是基于JakeWharton/SwipeToDismissNOA和romannurik/Android-SwipeToDismiss。如果你有兴趣,可以去关注一下他们。
lucasr/smoothie
项目地址:https://github.com/lucasr/smoothie
通过lucasr的smoothie,你可以极大的提升你的Listview的性能。他使用的技术被我称之为交互意识。通过smoothie项目,你的Listview会根据你对Listview的交互,动态的加载Item。当你在fliping时,Listview不会开启加载任务。而当停止fliping或者将要停止fliping时,加载任务才会真正开始。详细内容,你可以阅读我翻译的ListView性能优化指南这篇blog的最后一条建议。
ManuelPeinado / MultiChoiceAdapter
项目地址:https://github.com/ManuelPeinado/MultiChoiceAdapter
通过ManuelPeinado的MultiChoiceAdapter你可以简单是实现ListView的多选功能。就像下面所展示的这样
是的,官方已经提供了非常优秀的API了。但是通过使用ManuelPeinado的MultiChoiceAdapter,你可以在方便的在低版本中使用到该功能。
需要补充的事情是,在进入了CAB模式后,选中的item并不会有明显的变化。因此很容易让人误以为没有进入MultiChoice模式。为了使得CAB模式更加明显,你可以设置Item对应的Layout的background。注意,要使用的是statedrawable。需要对应的state是stateactivated。当然除了更改style,你还可以在Item中加入CheckBox或者CheckedTextView这样的控件。
ContentMenu
事实上,对于Listview的ContentMenu似乎并没有什么开源项目。放在这里的原因是,Android对于Listview的ContentMenu做了一些优化,我觉得很有必要一起放在这里。
关于ContentMenu的使用,你可以直接参考Android的API。这里需要补充的事情是,registerForContextMenu()
方法的参数是listview
即可,不需要是item
。另外通过item.getMenuInfo()
方法获取AdapterContextMenuInfo,进而获取对应item的id和position等信息。代码如下:
@Overridepublic boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { ........... }}
该获取到的MenuInfo,其实就是onCreateContextMenu()
方法的参数menuInfo。
- Android ListView相关开源项目汇总
- Android开源项目分类汇总(一) ListView
- GitHub 优秀的 Android 开源项目 - listview相关
- Android-UI相关开源项目库汇总
- Android UI相关开源项目库汇总
- Vue相关开源项目库汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android 开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Android开源项目汇总
- Effective Java item6 消除过期对象的引用
- php 导出 Excel
- 查看浏览器的内核
- HDFS 基本文件操作API
- 《安卓笔记》Handler消息机制
- Android ListView相关开源项目汇总
- 内存分配失败
- NLM去噪算法实现
- 开启博客之旅
- Log的五种信息
- 动态代理记录日志
- {小结}GDOI2016骗分记
- 【翻译】ContentProviderClient VS ContentResolver
- web学习笔记-servlet