最近项目中需要的一个滑动菜单效果:要求当前居中选项放大、滑动时有缩放效果、点击两边的选项滑动到屏幕中央、停止滑动选项停留在屏幕中间(类似viewPager的效果),为了直观,先上最终实现效果图:
大体思路:
- Recyclerview item头尾添加空数据,让第一个和最后一个item也能停留在中间;
- Recyclerview+SnapHelper实现viewPager的效果;
- 添加Recyclerview滑动监听,根据滑动情况动态缩放view的大小。
下面看具体的实现步骤 - - -
1、Recyclerview的初始化
private int pageItemCount = 5;//整个屏幕显示多少个item
recyclerView.post(new Runnable() {
@Override
public void run() {
rcViewWidth = recyclerView.getMeasuredWidth();
//每个item的宽度
itemWidth = rcViewWidth / pageItemCount;
int[] menuImgs = new int[]{
R.mipmap.icon_menu_face, R.mipmap.icon_menu_car, R.mipmap.icon_menu_remote,
R.mipmap.icon_menu_scan