recycleview实现title横向滑动,点击条目居中显示

来源:互联网 发布:2013年网络炒作事件 编辑:程序博客网 时间:2024/05/30 21:58

首先这种需求常规有两种做法,
第一种:动态创建TextView 然后放入到LinearLayout,Linearlayout在HorizontalScrollView中;
第二种:就是HorizontalScrollView + GridView;
这里我们使用recycleview就可以实现了。

思路:获取点击的position的item,然后获取左边可见的条目的距离left,获取右边可见的条目的距离right,然后(left + right)/2就行了
效果图如下:
这里写图片描述

原理图如下所示:

这里写图片描述
现在问题就是怎样获取left和Right:
首先我们获取第一个可见条目和最后一个可见条目下标:(注意: position就是我们点击的item下标;)

int firstPosition = layoutManager.findFirstVisibleItemPosition();int lastPosition = layoutManager.findLastVisibleItemPosition();

然后我们获取left和right:

int left = title_recycleview.getChildAt(position - firstPosition).getLeft();int right = title_recycleview.getChildAt(lastPosition - position).getLeft();

然后就是滚动了:recycleview有两个滚动的方法scrollBy和scrollToPosition两个,两者区别就是scrollToPosition只负责滚动到指定位置,然后在屏幕的具体位置就不管了;而scrollBy(X,Y),就是滚动到指定的位置;

也就是如下代码:

Recycleview.scrollBy((left - right)/2,0);

至于position的获取我就不多说了。
完成了,就这,OK了。

原创粉丝点击