Android recyclerView横条指示器实现淘宝菜单模块
电商首页菜单模块,可以横向滑动,底部的滑动位置指示器该如何实现呢?
实现思路:
1.上方横滑列表可以直接使用RecyclerView实现;
2.下方的指示器:
(1).计算出RecyclerView划出屏幕的距离w1和剩余宽度w2的比例y,y=w1/(总宽度w3-可使视区域宽度w4);
(2).计算出指示器该移动的距离w5 =y*(指示器的总宽度w6 -滑块宽度w7);
(3).指示器布局实现:
(4).代码调用:
rcvClassifyTypes.addOnScrollListener(newRecyclerView.OnScrollListener(){ @Override publicvoidonScrollStateChanged(RecyclerViewrecyclerView,intnewState){ super.onScrollStateChanged(recyclerView,newState); } @Override publicvoidonScrolled(RecyclerViewrecyclerView,intdx,intdy){ super.onScrolled(recyclerView,dx,dy); //整体的总宽度,注意是整体,包括在显示区域之外的 //滚动条表示的总范围 inttemp=rcvClassifyTypes.computeHorizontalScrollRange(); if(temp>range){ range=temp; } //滑块的偏移量 intoffset=rcvClassifyTypes.computeHorizontalScrollOffset(); //可视区域长度 intextent=rcvClassifyTypes.computeHorizontalScrollExtent(); //滑出部分在剩余范围的比例 floatproportion=(float)(offset*1.0/(range-extent)); //计算滚动条宽度 floattransMaxRange=parentLayout.getWidth()-childline.getWidth(); //设置滚动条移动 childline.setTranslationX(transMaxRange*proportion); } });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。