手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >SwipeRefreshLayout + RecyclerView 怎么设置下拉刷新过程中禁止再次下拉刷新
SwipeRefreshLayout + RecyclerView 怎么设置下拉刷新过程中禁止再次下拉刷新
摘要:RT,刷新过程中再次触发下拉刷新的时候,往上滑动会将两次刷新的数据一起加载出来,想要避免这种情况该怎么做附代码:recyclerView.s...

RT,刷新过程中再次触发下拉刷新的时候,往上滑动会将两次刷新的数据一起加载出来,想要避免这种情况该怎么做

附代码:

recyclerView.setHasFixedSize(true);

        recyclerView.setAdapter(adapter);

        recyclerView.setLayoutManager(manager);

        swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary);

        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

            @Override

            public void onRefresh() {

                page = 1;

                list.clear();

                adapter.notifyDataSetChanged();

                presenter.testRank(libid, userid, interval, "10", String.valueOf(page));

                isLastPage = false;

                isLimit = false;

                swipeRefreshLayout.setRefreshing(false);

            }

        });

        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

                                         //用来标记是否正在向最后一个滑动,既是否向右滑动或向下滑动

                                         @Override

                                         public void onScrollStateChanged(RecyclerView recyclerView, int newState) {

                                             LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();

                                             // 当不滚动时

                                             if (newState == RecyclerView.SCROLL_STATE_IDLE) {

                                                 //获取最后一个完全显示的ItemPosition

                                                 int lastVisibleItem = manager.findLastCompletelyVisibleItemPosition();

                                                 int totalItemCount = manager.getItemCount();

                                                 // 判断是否滚动到底部,并且是向右滚动

                                                 if (lastVisibleItem == (totalItemCount - 1) && isSlidingToLast) {

                                                     //加载更多功能的代码

                                                     isMore = true;

                                                     if (isFirst) {

                                                             page++;

                                                         if (page < = maxPage) {

                                                             presenter.testRank(libid, userid, interval, "10", String.valueOf(page));

                                                         }

                                                         if (!isLastPage && !isLimit && page == maxPage + 2) {

                                                             DeviceUtil.MyToast(RankActivity.this, "排名只显示前" + maxPage * 10 + "名");

                                                             isLimit = true;

                                                             isLastPage = true;

                                                         } else {

                                                         if (!isLastPage) {

                                                             page++;

                                                             presenter.testRank(libid, userid, interval, "10", String.valueOf(page));

                                                         }

                                                     }

                                                 }

                                             }

                                         }

                                         @Override

                                         public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

                                             super.onScrolled(recyclerView, dx, dy);

                                             //dx用来判断横向滑动方向,dy用来判断纵向滑动方向

                                             if (dy  > 0) {

                                                 //大于0表示,正在向右滚动

                                                 isSlidingToLast = true;

                                             } else {

                                                 //小于等于0 表示停止或向左滚动

                                                 isSlidingToLast = false;

                                             }

                                         }

                                     }

        );

    }

回复讨论(解决方案)

大神们呢 SwipeRefreshLayout 可以判断是否在刷新中, swipeRefresh.isRefreshing() , 如果在刷新中,你可以不去做请求操作。

【SwipeRefreshLayout + RecyclerView 怎么设置下拉刷新过程中禁止再次下拉刷新】相关文章:

Android打开GPS导航并获取位置信息返回null解决方案

View中如何进行手势识别onFling动作实现介绍

android 引导界面的实现方法

在Android中访问WebService接口的方法

Android应用开发SharedPreferences存储数据的使用方法

Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能

Android源码中的目录结构详解

Android当修改一些代码时使用什么编译命令可以最有效率

Android开发笔记之:如何安全中止一个自定义线程Thread的方法

Android 完全退出应用程序的解决方法

精品推荐
分类导航