欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决listview与SwipeRefreshLayout滑动冲突问题

程序员文章站 2022-06-08 17:56:45
...

在向上滑动时不会有影响,但是在下拉刷新时,不论listview在什么位置都会触发SwipeRefreshLayout刷新。

所以需求是:在listview处于顶部时才触发SwipeRefreshLayout下拉刷新。

解决方法如下:

listView.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
        int visibleItemCount, int totalItemCount) {
    boolean enable = false;
    if(listView != null && listView.getChildCount() > 0){
        // check if the first item of the list is visible
        boolean firstItemVisible = listView.getFirstVisiblePosition() == 0;
        // check if the top of the first item is visible
        boolean topOfFirstItemVisible = listView.getChildAt(0).getTop() == 0;
        // enabling or disabling the refresh layout
        enable = firstItemVisible && topOfFirstItemVisible;
    }
    swipeRefreshLayout.setEnabled(enable);
}});


相关标签: 滑动冲突