1、RecyclerView跳转到指定位置

只需调用recycleview的置顶方法:

recyclerView.scrollToPosition(15);

如果你需要让第15item在屏幕居中,只需吧scrollToPosition参数变小即可:

如:

recyclerView.scrollToPosition(12);或

recyclerView.scrollToPosition(9);

即可让15item在屏幕居中

注:置顶显示item

mRecyclerView.smoothScrollToPosition(currentIndex);

RecyclerView.canScrollVertically(1)的值表示是否能向下滚动,false表示已经滚动到底部
RecyclerView.canScrollVertically(-1)的值表示是否能向上滚动,false表示已经滚动到顶部

2、RecyclerView上下滑动监听——上拉刷新列表

private int lastposion, pagenum = 1, pageContent, num;
gxwbrecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {//用来标记是否正在向最后一个滑动,既是否向右滑动或向下滑动boolean isSlidingToLast = false;@Overridepublic void onScrollStateChanged(RecyclerView recyclerView, int newState) {LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();// 当不滚动时if (newState == RecyclerView.SCROLL_STATE_IDLE) {//获取最后一个完全显示的ItemPositionlastposion = manager.findLastCompletelyVisibleItemPosition();int totalItemCount = manager.getItemCount();if (lastposion == (totalItemCount - 1) && isSlidingToLast&&!ifload) {pagenum++;if (pagenum>pageContent){Toast.makeText(getContext(), "已到底!", Toast.LENGTH_SHORT).show();return;}getarealist(1);}}}@Overridepublic void onScrolled(RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy);//dx用来判断横向滑动方向,dy用来判断纵向滑动方向//大于0表示,正在向右滚动;小于等于0 表示停止或向左滚动isSlidingToLast = dy > 0;}
});
void onScrollStateChanged(RecyclerView recyclerView, int newState): 滚动状态变化时回调
void onScrolled(RecyclerView recyclerView, int dx, int dy): 滚动时回调
/*** The RecyclerView is not currently scrolling.(静止没有滚动)*/
public static final int SCROLL_STATE_IDLE = 0;/*** The RecyclerView is currently being dragged by outside input such as user touch input.*(正在被外部拖拽,一般为用户正在用手指滚动)*/
public static final int SCROLL_STATE_DRAGGING = 1;/*** The RecyclerView is currently animating to a final position while not under outside control.*(自动滚动)*/
public static final int SCROLL_STATE_SETTLING = 2;

3、安卓手机7.0RecyclerView显示不全解决方法

解决办法是在RecyclerView的外部套上一层RelativeLayout

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants">

<android.support.v7.widget.RecyclerView
            android:id="@+id/menuRv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/margin_16"
            android:layout_marginRight="@dimen/margin_16"/>

</RelativeLayout>

Android ScrollView与RecyclerView滑动冲突问题

解决滑动冲突、滑动不流畅
recyclerView.setHasFixedSize(true);
recyclerView.setNestedScrollingEnabled(false);

滑动速速设置

1、自定义类

public class LinearLayoutManagerWithScrollTop extends LinearLayoutManager {public LinearLayoutManagerWithScrollTop(Context context) {super(context);}public LinearLayoutManagerWithScrollTop(Context context, int orientation, boolean reverseLayout) {super(context, orientation, reverseLayout);}public LinearLayoutManagerWithScrollTop(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);}@Overridepublic void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {TopSnappedSmoothScroller topSnappedSmoothScroller = new TopSnappedSmoothScroller(recyclerView.getContext());topSnappedSmoothScroller.setTargetPosition(position);startSmoothScroll(topSnappedSmoothScroller);}class TopSnappedSmoothScroller extends LinearSmoothScroller {public TopSnappedSmoothScroller(Context context) {super(context);}@Nullable@Overridepublic PointF computeScrollVectorForPosition(int targetPosition) {return LinearLayoutManagerWithScrollTop.this.computeScrollVectorForPosition(targetPosition);}/*** MILLISECONDS_PER_INCH 默认为25,及移动每英寸需要花费25ms,如果你要速度变快一点,就直接设置设置小一点,注意这里的单位是f*/protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {return 15f / displayMetrics.densityDpi;}@Overrideprotected int getVerticalSnapPreference() {return SNAP_TO_START;}}
}

2、引用即可

mRecyclerView.setLayoutManager(new LinearLayoutManagerWithScrollTop(this));

不可滑动

//        LinearLayoutManager layoutManager = new LinearLayoutManager(this) {
//            public boolean canScrollVertically() {
//                return false;
//            }
//        };LinearLayoutManager layoutManager = new LinearLayoutManager(this);layoutManager.setOrientation(RecyclerView.VERTICAL);recyclerView.setLayoutManager(layoutManager);

RecyclerView跳转到指定位置,RecyclerView上下滑动监听,RecyclerView滑动速度相关推荐

  1. Android监听左右滑删除通知,Android 滑动监听RecyclerView线性流+左右划删除+上下移动...

    废话不多说了,直接给大家贴代码了.具体代码如下所示: xmlns:tools="http://schemas.android.com/tools" android:layout_w ...

  2. recycleview 使用详解,添加头部尾部,混合item,侧滑菜单,跳转到指定位置,实现九宫格布局

    添加头部尾部,混合item:https://blog.csdn.net/meixi_android/article/details/82256319 侧滑菜单:https://blog.csdn.ne ...

  3. html导航栏页面切换的js,js实现页面滚动切换导航栏/点击导航栏跳转到指定位置...

    最近一直在弄页面的事情,对页面方面的知识又巩固了一下.这次的内容如题,大家对代码有疑问或者是有更好的方法欢迎留言! js部分 //标题对象 var title = document.getElemen ...

  4. 锚点定位 跳转到指定位置 回到顶部功能

    一.跳转到指定位置 项目中数据较多,但是要在一个页面展示出来,就会需要定位功能. 例如淘宝中点击某个商品的分类会跳转到对应的模块,模块中是详细的商品信息 数据 arrayList:[{ //不一一列出 ...

  5. Vue 页面跳转到指定位置

    Vue 页面跳转到指定位置 页面跳转 页面 script style 进阶版:随着页面滚动变换导航菜单样式 监听页面滚动方法 销毁滚动 页面跳转 页面 <template><div ...

  6. js实现页面滚动切换导航栏/点击导航栏跳转到指定位置

    最近一直在弄页面的事情,对页面方面的知识又巩固了一下.这次的内容如题,大家对代码有疑问或者是有更好的方法欢迎留言! js部分 //标题对象       var title = document.get ...

  7. Android RecyclerView(九)滑动监听综述

    Android RecyclerView(九)滑动监听 1 RecyclerView 的滑动监听 1.1 RecyclerView 设置滑动监听 mRecyclerView.setOnScrollLi ...

  8. 如何监听RecyclerView划到最后一条数据

    实现代码: //RecyclerView的滑动监听mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { //当 ...

  9. js 跳转到指定位置 高德地图_JS引入高德地图定位

    在此记录一下X项目使用高德地图的思路高德地图(X项目前端框架是Jquery) 2准备工作(封装方法,以便直接调用) -2.2封装超时方法($.timeOut-参考) -2.3封装异步调用地图的方法 / ...

最新文章

  1. 自定义select 三角样式
  2. 湖南科技大学c语言程序设计b,2017年湖南科技大学计算机科学与工程学院826C语言程序设计与数据结构综合之数据结构考研题库...
  3. python画三维立体图-如何在论文中画出漂亮的插图?
  4. CentOS 5 全攻略 -- 一步一步配置详解
  5. 2017年第八届蓝桥杯【C++省赛B组】
  6. MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
  7. 【Scratch】青少年蓝桥杯_每日一题_8.17_报数
  8. Linux学习之系统编程篇:mmap 内存映射区
  9. PHP的学习--在sublime中使用XDebug(Ubuntu)
  10. 传感器 - 距离传感器
  11. Gantt - attachEvent事件监听 - 一个参数事件
  12. redies用途和使用场景
  13. 2023年深圳市绿色低碳产业扶持计划申报指南
  14. 关于android的外文论文,毕业论文外文翻译-Android开发
  15. HCIA-IoT 个人学习总结 Day2
  16. Browserslist: caniuse-lite is outdated
  17. 计算机三级嵌入式学习笔记(一)
  18. 洪水!(Flooded!)
  19. 已知每个部门有一个经理,统计输出部门名称、部门总人数、 总工资和部门经理。
  20. HDF5数据库和mysql数据库_hdf5文件格式使用攻略

热门文章

  1. [css] css怎么更改表单的单选框或下拉框的默认样式?
  2. 前端学习(2596):后台系统的权限控制和管理--刷新页面消失
  3. “约见”面试官系列之常见面试题之第八十三篇之node.js理解(建议收藏)
  4. 前端学习(1754):前端调试值之监控页面重绘的技巧
  5. 前端学习(1743):前端调试值之调试元素的hover样式
  6. 前端学习(1729):前端系列javascript之内容卡片布局
  7. 第十五期:详解Java集合框架,让你全面掌握!
  8. 玩转oracle 11g(46):图解oracle数据库
  9. 实例9:python
  10. Qt 给应用程序添加图标