Android SwipeRefreshLayout 嵌套 CoordinatorLayout 下拉刷新 事件冲突解决
来源:互联网 发布:linux daemon 作用 编辑:程序博客网 时间:2024/04/25 08:19
问题
我们滚动的布局控件 ScrollView 或NestScrollView 加一个SwipeRefreshLayout下拉刷新,会出现这样一种情况:
先将ScrollView 向上滑动一部分,然后松手,然后再向下滑动,.此时会出现先触发swipeRefreshLayout的问题。
影响客户体验。
解决
当ScrollView到顶部以后才触发刷新事件。
1 如果 SwipeRefreshLayout 直接嵌套一个 ScrollView 或NestScrollView ,判断ScrollView 是否滑动到顶端。进而动态设置 SwipeRefreshLayout 是否可用 即可解决。
scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { // 这只一定是 == ,不能是 <= ,scrollView 会自己调整 swipeRefreshLayout.setEnabled(scrollView.getScrollY()==0); } });
2 如果 SwipeRefreshLayout 嵌套一个 CoordinatorLayout 布局,CoordinatorLayout 布局里面有ScrollView ,用上面的方法 就不行了,是否在顶端就不准确了,
好在 可以 监听 AppBarLayout Offset 的变化,动态设置 SwipeRefreshLayout 是否可用。
appBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout); appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if (verticalOffset >= 0) { mSwipeRefreshLayout.setEnabled(true); } else { mSwipeRefreshLayout.setEnabled(false); } } });
参考
解决SwipeRefreshLayout与ScrollView滑动冲突
Android SwipeRefreshLayout 与 CoordinatorLayout 嵌套刷新
阅读全文
0 0
- Android SwipeRefreshLayout 嵌套 CoordinatorLayout 下拉刷新 事件冲突解决
- SwipeRefreshLayout 嵌套PullToRefreshListView下拉刷新冲突解决
- Android WebView下拉刷新与SwipeRefreshLayout事件冲突解决
- SwipeRefreshLayout下拉刷新冲突解决
- SwipeRefreshLayout下拉刷新冲突解决
- Android SwipeRefreshLayout 与 CoordinatorLayout 嵌套刷新
- Android SwipeRefreshLayout 与 CoordinatorLayout 嵌套刷新
- SwipeRefreshLayout 、RecyclerView 与 CoordinatorLayout 嵌套刷新滑动冲突的解决办法
- SwipeRefreshLayout 与 CoordinatorLayout 嵌套刷新
- SwipeRefreshLayout 与 CoordinatorLayout 嵌套刷新
- viewpager和SwipeRefreshLayout下拉刷新冲突解决
- Android SwipeRefreshLayout 、RecyclerView 下拉刷新冲突
- Android SwipeRefreshLayout和RecyclerView嵌套时 下拉刷新冲突的解决办法
- 解决使用`SwipeRefreshLayout`下拉刷新和左右滑动事件冲突的问题
- 解决listview下拉与SwipeRefreshLayout下拉刷新冲突
- SwipeRefreshLayout下拉刷新跟listview下拉滑动冲突解决
- 解决SwipeRefreshLayout下拉刷新与ListView下拉的冲突
- SwipeRefreshLayout下拉刷新与下拉控件冲突解决
- 习题2-3 倒三角形 (triangle)
- nginx的配置及其介绍
- zcmu-1976
- BP神经网络的反向训练过程
- 搭建vue项目
- Android SwipeRefreshLayout 嵌套 CoordinatorLayout 下拉刷新 事件冲突解决
- HDU 1789-Doing Homework again
- Java String 类
- (综合)xorg-xserver相关完全解析
- [Redis学习笔记]-ubuntu下安装Redis
- 【spark 大数据处理技术】
- [Vue warn]: Do not use built-in or reserved HTML elements as component id:
- java基础2(初学者)
- 二叉树实现