1. 程式人生 > >recycleview實現title橫向滑動,點選條目居中顯示

recycleview實現title橫向滑動,點選條目居中顯示

首先這種需求常規有兩種做法,
第一種:動態建立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了。