MaterialRefreshLayout:如何在onRefreshLoadMore()方法中完成RefreshLoadMore()

时间:2016-02-20 16:39:36

标签: android android-recyclerview

我正在测试这个库MaterialRefreshLayout。我遇到的一个问题是我希望能够在onRefreshLoadMore()方法中结束刷新动画,如下所示:

materialRefreshLayout = (MaterialRefreshLayout) findViewById(R.id...);
 materialRefreshLayout.setMaterialRefreshListener(new MaterialRefreshListener() {
      @Override
      public void onRefresh(final MaterialRefreshLayout materialRefreshLayout) {
          //refreshing...
      }

       @Override
       public void onRefreshLoadMore(MaterialRefreshLayout materialRefreshLayout) {
           materialRefreshLayout.finishRefreshLoadMore();
       }
  }

但是,我注意到如果我这样做,onRefreshLoadMore()方法会多次触发(例如3-4次)。我想我不应该使用finishRefreshMore()内的onRefreshLoadMore()方法?是否有其他方法可以取消该方法中的刷新动画?

我想这样做,因为如果我在后端数据库的数据列表的末尾,我想不再进行网络调用,只是弹出Toast告诉我的用户没有更多的数据。但是,如果我现在这样做,Toast会运行3-4次......不确定这是一个错误还是我做错了。

1 个答案:

答案 0 :(得分:0)

这对我有用:

materialRefreshLayout = (MaterialRefreshLayout) findViewById(R.id...);
 materialRefreshLayout.setMaterialRefreshListener(new MaterialRefreshListener() {
      @Override
      public void onRefresh(final MaterialRefreshLayout  
   materialRefreshLayout) {
          //refreshing...

          // Set this to true because it may have been set to false 
          materialRefreshLayout.setLoadMore(true);
      }

       @Override
       public void onRefreshLoadMore(MaterialRefreshLayout materialRefreshLayout) {
           materialRefreshLayout.finishRefreshLoadMore();
           // Set it so that you cannot use pull up to refresh load more anymore
           materialRefreshLayout.setLoadMore(false);
       }
  }

我正在做的是禁用加载更多数据的功能。这会阻止onRefreshLoadMore()一遍又一遍地开火。但您必须记住在onRefresh()中再次启用它,否则它将被禁用。