Android 使用RecyclerView实现列表item重叠效果(使用addItemDecoration方法)
2017-08-24 17:55
1226 查看
项目有一个界面是这样的
看到后第一眼觉得应该使用RecyclerView,首先这个列表是item叠放效果,下面的压住了上面的一部分,而且item背景图片四周都有些透明阴影,不能简简单单的重定item高度解决,当然得需要很有私人订制范的RecyclerView了,要不就去找找有用的API方法,要不就是自定义LayoutManager。
很高兴,RecyclerView的一个方法能够解决这种效果,就是addItemDecoration方法;
一般我们都这样用
能够使RecyclerView有一个10像素的透明分割线。
那如果这个值是负数呢?很幸运,这样能达到我们想要的重叠效果:
很明显实现了我们想要的效果,但最后一个的item也被挡了,说明每一个item的下面都有一个分割线,因为outRect.bottom = 10为正值时也能看到:
很明显滚动到最后一条时,底部有一个透明分割线。
那如何让RecyclerView的最后一个item不显示呢?还是刚才的代码,加一句判断就行了:
parent.getChildPosition(view)能够获取item的View在parent中的索引,只要它不是最后一个就添加分割线高度,虽然方法已过时,但仍然完美的解决了问题。
注:Demo是随便写的,负值的多少还是需要根据Ui设计来计算。
看到后第一眼觉得应该使用RecyclerView,首先这个列表是item叠放效果,下面的压住了上面的一部分,而且item背景图片四周都有些透明阴影,不能简简单单的重定item高度解决,当然得需要很有私人订制范的RecyclerView了,要不就去找找有用的API方法,要不就是自定义LayoutManager。
很高兴,RecyclerView的一个方法能够解决这种效果,就是addItemDecoration方法;
一般我们都这样用
mRecyclerView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); outRect.bottom = 10; } });
能够使RecyclerView有一个10像素的透明分割线。
那如果这个值是负数呢?很幸运,这样能达到我们想要的重叠效果:
很明显实现了我们想要的效果,但最后一个的item也被挡了,说明每一个item的下面都有一个分割线,因为outRect.bottom = 10为正值时也能看到:
很明显滚动到最后一条时,底部有一个透明分割线。
那如何让RecyclerView的最后一个item不显示呢?还是刚才的代码,加一句判断就行了:
mRecyclerView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); if (parent.getChildPosition(view) != (mlist.size() - 1)) { outRect.bottom = -100; } } });
parent.getChildPosition(view)能够获取item的View在parent中的索引,只要它不是最后一个就添加分割线高度,虽然方法已过时,但仍然完美的解决了问题。
注:Demo是随便写的,负值的多少还是需要根据Ui设计来计算。
相关文章推荐
- Android——RecyclerView——使用ItemDragHelper来实现酷炫拖拽效果
- Android中RecyclerView的item运用覆盖view的方法实现item的动画效果
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果
- Android RecyclerView (一)初学,实现ListView列表效果。
- Android使用RecyclerView实现列表数据选择操作
- RecyclerView使用探索2–仿百度贴吧实现item的触摸移动和删除效果
- Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
- Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)
- Android 中使用 RecyclerView + SnapHelper 实现类似 ViewPager 效果
- Android开发之RecyclerView的基本使用(实现常用的4种效果)
- (更新版)Android VideoPlayer 在滚动列表实现item视频播放(ListView控件和RecyclerView)
- Android中RecyclerView实现多级折叠列表效果(二)
- 使用RecyclerView 简单实现QQ好友列表展开效果
- android上使用RecyclerView实现顶部悬浮标题效果的Sticky Title View
- 使用 RecyclerView 实现 Gallery 画廊效果,并控制 Item 停留位置
- Android使用ItemTouchHelper实现RecyclerView的item拖动位置交换
- Android时间轴(Timeline)效果的实现(使用RecyclerView)
- ListView实现item的卡片效果(不使用RecyclerView+CardView)
- Android中RecyclerView的item实现动画的效果
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果