解决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);
        }
    });
阅读更多

扫码向博主提问

Code-Porter

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Android
  • ReactNativ
  • 微信小程序
去开通我的Chat快问
换一批

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