huxq17 / XRefreshView

一个万能的android下拉上拉刷新的框架,完美支持recyclerview
1.7k stars 501 forks source link

Refreshview+CoordinatorLayout +AppBarLayout+RecyclerView 有事件冲突 #92

Closed zouxianbincc closed 7 years ago

zouxianbincc commented 7 years ago

XRefreshview+CoordinatorLayout +AppBarLayout+RecyclerView 有事件冲突 想做的效果是,XRefreshview放在最外层CoordinatorLayout,滑动RecyclerView ,当往下滑时,滑到最顶部时,启动下拉刷新。如果往上滑动。AppBarLayout固定

huxq17 commented 7 years ago

@zouxianbincc 说说怎么解决的

zouxianbincc commented 7 years ago

解决了,在CoordinatorLayout 外放 XRefreshView ,把固定在顶部的view 放在 AppBarLayout里,列表部分,要用NestedScrollView. 主要是要添加AppBarLayout 的监听 addOnOffsetChangedListener

    appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
        @Override
        public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
            isTop = verticalOffset == 0;
        }
    });

然后添加XRefreshView 滑动到顶部刷新时机, xrefreshView.setOnTopRefreshTime(new OnTopRefreshTime() { @Override public boolean isTop() { if(isFirst){ isFirst = false; return false; } return isTop; } });