Android之RecyclerView自定义滚动条
16lz
2021-01-26
根据需求针对横向显示的列表增加一个滚动条显示。
效果图:
Recycleview列表实现原来是啥就是啥,先看看列表下面的滚动条。
滚动条布局:
资源文件shape_bg_slip_behind.xml
<?xml version="1.0" encoding="utf-8"?>
资源文件shape_bg_slip_front.xml
<?xml version="1.0" encoding="utf-8"?>
之后就需要监听列表的滑动事件了。
// 这里的mRvHx是需要绑定滚动条的RecyclerView rv_main_app.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 range = rv_main_app.computeHorizontalScrollRange(); float density = getScreenDensity(); // 计算出溢出部分的宽度,即屏幕外剩下的宽度 float maxEndX = range - ScreenUtils.getScreenWidth() + (25 * density) + 5; // 滑动的距离 endX[0] = endX[0] + dx; // 计算比例 float proportion = endX[0] / maxEndX; // 计算滚动条宽度 int transMaxRange = ((ViewGroup) view_slip_front.getParent()).getWidth() - view_slip_front.getWidth(); // 设置滚动条移动 view_slip_front.setTranslationX(transMaxRange * proportion); } });
注意:当数据刷新时需要改变为初始的样子:
view_slip_front.setTranslationX(0);rv_view.scrollToPosition(0);
更多相关文章
- 理解---Android(安卓)向右滑动销毁(finish)Activity, 随着手势的滑
- Android(安卓)手势基础 GestureDetector
- Android在绘制View之前计算其高度 / 宽度
- Android(安卓)Material Design新UI控件使用大全 三
- Android(安卓)SwipeLayout实现界面滑动布局
- Android关于Pageradapter的总结
- Android使用SwipeListView实现类似QQ的滑动删除效果
- Android(安卓)RecyclerView下拉刷新和上拉加载更多
- android:自定义监听(简单)
随机推荐
- Android(安卓)Update Engine分析(七) Downl
- Fatal signal 11 (SIGSEGV) at 0xdeadbaa
- android adb shell命令行启动Activity se
- Android(安卓)studio添加按钮点击进入下
- Ubuntu 12.04中Android(安卓)NDK r8d 编
- Android更新UI的两种方法——handler与ru
- android通过HTTP协议上传文件至远程服务
- Anroid使用DefaultHttpClient访问Wap网络
- WebView的基本使用方法及 WebViewClient
- android 5.0 以上获取栈顶应用包名以及程