webview向上滚动与下拉刷新冲突(X5WebView)
来源:互联网 发布:三星手机指南针软件 编辑:程序博客网 时间:2024/06/10 01:48
最近项目中需要在webview添加个下拉刷新,继而出现了滑动冲突问题。使用swiperefreshLayout,webview(或者X5WebView)嵌套使用,webview下划滚动没有问题,但是上划滚动时,执行了swiperefreshLayout 的刷新动作,这并不是我想要的效果。
需要效果:上划滚动时webview需能直接滚动。只有当webview上划滚动到顶部,才能触发swiperefreshLayout 刷新。
swiperefreshLayout 作为谷歌推出的下拉刷新库,并没有内部处理这些手势分配。官网给了个api。 说如果子布局想滚动 重写 canChildScrollUp () 。实际上并不是很好操作。搜了很多blog 都没有用,下面给出有效的解决方式。适用与腾讯的X5WebView。
解决方式 : 基于需要效果,关键是识别到 webview 什么时候滚到顶部再把手势给 swiperefreshLayout 就可以了。只是 webView.getScrollY() 总是 =0 。
解决方式:
import com.tencent.smtt.sdk.WebView;import android.content.Context;import android.util.AttributeSet;/*** 重定义webview 这里继承的是X5WebView*/public class ScrollWebView extends WebView{ public interface IScrollListener { void onScrollChanged(int scrollY); } private IScrollListener mScrollListener; public void setOnScrollListener(IScrollListener listener) { mScrollListener = listener; } public ScrollWebView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); //只要是通过webview的滚动距离 t if (mScrollListener != null) { mScrollListener.onScrollChanged(t); } }}
在activity中这样调用:
mWebView.setOnScrollListener(new IScrollListener() { @Override public void onScrollChanged(int scrollY) { //这是我项目的刷新(到时候去掉,用下面的判断) if (scrollY == 0)//webView在顶部 { mPb.setRefreshEnabled(true); } else { mPb.setRefreshEnabled(false); } //swiperefreshLayout刷新// if (t == 0) {//webView在顶部// swipeLayout.setEnabled(true);// } else {//webView不是顶部// swipeLayout.setEnabled(false);// } } });
网上查找资料,有老铁提供的x5webview的判断
不过在官方中我是没有找到。有找到的老铁分享下哈。。。
阅读全文
0 0
- webview向上滚动与下拉刷新冲突(X5WebView)
- swiperefreshLayout和webview滚动冲突(X5WebView)
- Android WebView下拉刷新与SwipeRefreshLayout事件冲突解决
- WebView加下拉刷新的时候,如果WebView内部有上下滑动的列表,会与下拉刷新的滑动冲突
- ViewPager与SwipeFreshLayout(下拉刷新)滑动冲突的解决
- 解决SwipeRefreshLayout和webview下拉刷新冲突问题
- 解决SwipeRefreshLayout和webview下拉刷新冲突问题
- banner--与下拉刷新冲突解决
- Android下拉刷新与轮播图冲突解决方案
- Android 下拉刷新与 ListView冲突问题
- 解决listview下拉与SwipeRefreshLayout下拉刷新冲突
- 解决SwipeRefreshLayout下拉刷新与ListView下拉的冲突
- SwipeRefreshLayout下拉刷新与下拉控件冲突解决
- WebView下拉刷新解决办法
- Android WebView下拉刷新
- WebView下拉刷新Demo
- WebView下拉刷新Demo
- WebView 下拉刷新
- 用Jquery 写一个简单的消息提醒(带声音提示)
- 关于c++中的this指针
- Linux can总线调试学习记录
- 头条新手号半个月时间即可转正,做好以下四点就足够了
- redis 集群 创建报错 [ERR] Node is not empty. Either the node already knows other nodes (check with C
- webview向上滚动与下拉刷新冲突(X5WebView)
- 不仅永洪BI 每个企业都需要产品迭代的理念
- Node.js学习(1)牛刀小试
- 奇异值分解习题
- 阿里妈妈MaxCompute架构演进_-_AON(MPI)集群
- 欢迎使用CSDN-markdown编辑器
- 通达OA二次开发 小飞鱼应用OA工作流二次开发智能公文系统(三)(图文)
- Ubuntu16.04安装Redis
- 几种简单的负载均衡算法及其Java代码实现