解决SwipeRefreshLayout与ScrollView滑动冲突

版权声明:本文出自阿钟的博客,转载请注明出处: https://blog.csdn.net/a_zhon/article/details/52693816

在页面为了兼容小屏幕设备我们需要嵌套一个ScrollView来让我们的布局可以滑动,此时恰好外层使用了SwipeRefreshLayout那滑动冲突就来了,下面给出解决办法

1.方法一:使用NestedScrollView替换ScrollView

<android.support.v4.widget.NestedScrollView
            android:id="@+id/scrollView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            //跟ScrollView一样只能接受一个直接的子view
        .....
</android.support.v4.widget.NestedScrollView>

2.方法二:先将ScrollView 向上滑动一部分,然后松手.然后再向下滑动,此时应该是先触发滑动事件,当ScrollView到顶部以后才触发刷新时间.但是此时会出现先触发swipeRefreshLayout的问题。

scrollView.getViewTreeObserver().addOnScrollChangedListener(new  ViewTreeObserver.OnScrollChangedListener() {
        @Override
        public void onScrollChanged() {
            swipeRefreshLayout.setEnabled(scrollView.getScrollY()==0);
        }
    });

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试