仿淘宝菜单栏线条滚动

RecycleView + 线条滚动

滑动主要代码

mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
//整体的总宽度,注意是整体,包括在显示区域之外的。
int temp=mRecyclerView.computeHorizontalScrollRange();
if (temp>range){
range=temp;
}
//计算水平滚动偏移
int offset = mRecyclerView.computeHorizontalScrollOffset();
//计算水平滚动范围
int extent = mRecyclerView.computeHorizontalScrollExtent();
//计算滚动的比例
float proportion = (float) (offset*1.0 / (range-extent));
//计算滚动条宽度
float transMaxRange = mLayout.getWidth() - mLineView.getWidth();
//设置滚动条移动
mLineView.setTranslationX(transMaxRange * proportion);
Log.e(“scrll”,transMaxRange+"—"+range+"—"+"—"+proportion+"—"+offset+"----"+extent);
}
});

————————————————
版权声明:本文为CSDN博主「SXH_Android」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SXH_Android/article/details/96861159

相关文章: