【问题标题】:swiperefreshlayout keep refreshing inside onscroll methodswiperefreshlayout 在 onscroll 方法中保持刷新
【发布时间】:2015-05-07 17:05:19
【问题描述】:

我有一个 SwipeRefreshLayout,里面有一个列表视图。 我想实现上拉刷新(因为滑动刷新只支持下拉刷新),因此对列表视图的onscroll方法做了一些修改

@Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, final int totalItemCount) {

                  if(firstVisibleItem + visibleItemCount >= totalItemCount && totalItemCount != 0 && !swipeRefreshLayout.isRefreshing() && pagecount > 0){
                      setRefresh();
                  }

//
            }

在 setRefresh 方法中我这样做了:

我什至添加了一个同步关键字来限制这个方法一次调用一次, 但是,在我的应用程序中,我可以看到刷新徽标不断出现,结果证明 setRefresh 一直在调用。

我想知道它是怎么发生的?

【问题讨论】:

    标签: android android-layout listview synchronized swiperefreshlayout


    【解决方案1】:

    由于您立即将刷新设置为 false,而不是在延迟后位中设置,因此当调用 onScroll 方法时,它始终将 swipeRefreshLayout.isRefreshing() 视为 false。因此,setRefresh 被一遍又一遍地调用。

    将 setRefreshing 调用移到 Runnable 内部应该可以解决该问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 2015-08-10
      相关资源
      最近更新 更多