1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android recyclerview监听滑动状态

android recyclerview监听滑动状态

时间:2019-09-22 05:48:24

相关推荐

android recyclerview监听滑动状态

mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void onScrollStateChanged(RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);switch (newState){/*正在拖拽*/case RecyclerView.SCROLL_STATE_DRAGGING:break;/*滑动停止*/case RecyclerView.SCROLL_STATE_IDLE:break;/*惯性滑动中*/case RecyclerView.SCROLL_STATE_SETTLING:break;}}@Overridepublic void onScrolled(RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy);LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();//经测试第一个完整的可见的item位置,若为0则是最上方那个;在item超过屏幕高度的时候只有第一个item出现的时候为0 ,其他时候会是一个负的值//此方法常用作判断是否能下拉刷新,来解决滑动冲突int findFirstCompletelyVisibleItemPosition = ((LinearLayoutManager) manager).findFirstCompletelyVisibleItemPosition();//最后一个完整的可见的item位置int findLastCompletelyVisibleItemPosition = ((LinearLayoutManager) manager).findLastCompletelyVisibleItemPosition();//第一个可见的位置int findFirstVisibleItemPosition = ((LinearLayoutManager) manager).findFirstVisibleItemPosition();//最后一个可见的位置int findLastVisibleItemPosition = ((LinearLayoutManager) manager).findLastVisibleItemPosition();//如果有滑动冲突--可以用以下方法解决(如果可见位置是position==0的话才能有下拉刷新否则禁掉)//mSwipeRefreshLayout.setEnabled(findFirstCompletelyVisibleItemPosition==0);//在网上还看到一种解决滑动冲突的方法 int topPosition = (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();Log.e("touch", "onScroll:" + topPosition);//mSwipeRefreshLayout.setEnabled(topPosition >= 0);}});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。