首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓5 RecyclerView类Gmail

安卓5 RecyclerView类Gmail
EN

Stack Overflow用户
提问于 2015-01-09 06:59:05
回答 1查看 9.5K关注 0票数 1

我在玩RecyclerView,发现关于如何使用它的文档不多。

我从文档中看到,GMail应用程序正在使用RecyclerView,但在应用程序中,它有许多普通RecyclerView不支持的特性:

里面有张截图

https://developer.android.com/training/material/lists-cards.html

功能:

  1. 在onTouch时突出显示列表项
  2. 向左/右滑动以删除

我可以知道如何实现这些功能吗?

我发现有关于如何实现OnClickListener的讨论(您的这些解决方案非常缓慢,因为它经常检查列表项区域)

RecyclerView onClick

但是,如果您将它与Gmail应用程序进行比较,它是快速和流畅的!

我可以知道如何实现上述两个功能吗?他们是怎么做到的?他们使用的是回收视图还是ListView?

我确信我可以使用ListView来实现这些特性,但是我不知道如何使用回收视图来实现它们。

EN

回答 1

Stack Overflow用户

发布于 2015-09-01 07:54:30

左/右滑动可以这样执行:用ItemTouchHelper -jmcdale的答案滑动

SwipeToDismiss可以从安卓支持库中获得。

  1. 添加“回收视图-v7:22.2.+”依赖于build.gradle: compile 'com.android.support:recyclerview-v7:22.2.+'
  2. 将remove方法添加到RecyclerView.Adapter实现中: 公共类ExampleAdapter扩展适配器{.公共空移(int位置){list.remove(位置);notifyItemRemoved(位置);}}
  3. 使用ItemTouchHelper和ItemTouchHelper.Callback: adapter.remove(viewHolder.getAdapterPosition()) }@ ItemTouchHelper.SimpleCallback simpleItemTouchCallback =新的ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.LEFT ItemTouchHelper.SimpleCallback ItemTouchHelper.RIGHT) {@覆盖公共void ( RecyclerView.ViewHolder viewHolder,int swipeDir) { //Remove swiped simpleItemTouchCallback}@重载公共int getMovementFlags(RecyclerView recyclerView,RecyclerView.ViewHolder viewHolder) {//可用的拖放方向int dragFlags = ItemTouchHelper.UP ItemTouchHelper.DOWN;//可用的滑动方向int swipeFlags = ItemTouchHelper.START x ItemTouchHelper.END;返回makeMovementFlags(dragFlags,swipeFlags);}/禁用或启用长按压拖放@覆盖公用布尔值isLongPressDragEnabled() {//返回假;返回真;}/禁用或启用swiping @Override @false(){ //return ();返回true;};ItemTouchHelper itemTouchHelper =新ItemTouchHelper(simpleItemTouchCallback);
  4. 将ItemTouchHelper附加到RecyclerView itemTouchHelper.attachToRecyclerView(recyclerView);

另一个有用的链接:用recyclerView拖动和滑动

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27855401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档