FocusLayoutManager-有焦点item的水平/垂直滚动RecyclerView-LayoutManager。仿An...
有焦点item的水平/垂直滚动RecyclerView-LayoutManager。仿Android豆瓣书影音“推荐“频道列表布局效果截图: GIF: 可自己监听滚动编写效果,如修改成仿MacOS文件浏览: 依赖api 'com.ccy:FocusLayoutManager:1.0.1' // (or implementation)使用focusLayoutManager = new FocusLayoutManager.Builder() .layerPadding(dp2px(this, 14)) .normalViewGap(dp2px(this, 14)) .focusOrientation(FocusLayoutManager.FOCUS_LEFT) .isAutoSelect(true) .maxLayerCount(3) .setOnFocusChangeListener(new FocusLayoutManager.OnFocusChangeListener() { @Override public void onFocusChanged(int focusdPosition, int lastFocusdPosition) { } }) .build(); recyclerView.setLayoutManager(focusLayoutManager);各属性意义见图: 注意:因为item在不同区域随着滑动会有不同的缩放,所以实际layerPadding、normalViewGap会被缩放计算。调整动画效果:new FocusLayoutManager.Builder() ...... .setSimpleTrasitionListener(new FocusLayoutManager.SimpleTrasitionListener() { @Override public float getLayerViewMaxAlpha(int maxLayerCount) { return super.getLayerViewMaxAlpha(maxLayerCount); } @Override public float getLayerViewMinAlpha(int maxLayerCount) { return super.getLayerViewMinAlpha(maxLayerCount); } @Override public float getLayerChangeRangePercent() { return super.getLayerChangeRangePercent(); } //and more //更多可重写方法和释义见接口声明 }) .build();自定义动画/滚动监听:如果你想在滑动时不仅仅改变item的大小、透明度,你有更多的想法,可以监听TrasitionListener,该监听暴露了很多关键布局数据,...... .setSimpleTrasitionListener(null) //如果默认动画不想要,移除之。or use removeTrasitionlistener(XXX) .addTrasitionListener(new FocusLayoutManager.TrasitionListener() { @Override public void handleLayerView(FocusLayoutManager focusLayoutManager, View view, int viewLayer, int maxLayerCount, int position, float fraction, float offset) { } @Override public void handleFocusingView(FocusLayoutManager focusLayoutManager, View view, int position, float fraction, float offset) { } @Override public void handleNormalView(FocusLayoutManager focusLayoutManager, View view, int position, float fraction, float offset) { } })各参数意义见接口注释。 实际上SimpleTrasitionListener内部就会被转为TrasitionListener。可参考转换类是怎么做的:TrasitionListenerConvert源码解析https://blog.csdn.net/ccy0122/article/details/90515386
- 1
- 粉丝: 404
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助