博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android SwipeRefreshLayout嵌套Webview滑动冲突问题解决
阅读量:7094 次
发布时间:2019-06-28

本文共 1771 字,大约阅读时间需要 5 分钟。

最近有一个需求,需要在网页中实现下拉刷新功能,这里遇到一个坑,加载网页的时候webview向上滑动不了了,看了一下网上的资料尝试过后都没有用,所以在这里做一下记录,希望可以帮到大家,由于两个控件都有滑动的事件,在向下滑动的时候滑动事件被SwipeRefreshLayout控件优先覆盖了,这里的话可以监听webview的滑动事件对SwipeRefreshLayout是否允许下拉刷新进行控制。

1.layout布局

复制代码

2.自定义Webview得到onScrollChanged方法的监听事件

public class MyWebView extends WebView {    public MyWebView(Context context) {        super(context);    }    public MyWebView(Context context, AttributeSet attributeSet) {        super(context, attributeSet);    }    public MyWebView(Context context, AttributeSet attributeSet, int i) {        super(context, attributeSet, i);    }    @Override    protected void onScrollChanged(int l, int t, int oldl, int oldt) {        super.onScrollChanged(l, t, oldl, oldt);        if (mScrollListener != null) {            mScrollListener.onScrollChanged(t);        }    }    public interface IScrollListener {        void onScrollChanged(int scrollY);    }    private IScrollListener mScrollListener;    public void setOnScrollListener(IScrollListener listener) {        mScrollListener = listener;    }}复制代码

3.初始化控件调用setOnScrollListener接口,控制可下拉刷新时机

SwipeRefreshLayout mSwipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);      mMyWebview.setOnScrollListener(new ExplorerWebView.IScrollListener() {                @Override                public void onScrollChanged(int scrollY) {                    if (scrollY == 0) {                    //开启下拉刷新                        mSwipeRefresh.setEnabled(true);                    } else {                    //关闭下拉刷新                        mSwipeRefresh.setEnabled(false);                    }                }            });复制代码

OK,我的冲突问题解决了,不过开发中同一个需求根据项目情况实现的方式也会不一样,解决方式也会不同,这里提供的是解决方法之一。

转载于:https://juejin.im/post/5be40b6751882516d725af6a

你可能感兴趣的文章
架构设计目录
查看>>
Wind7外接显示器选择拓展模式后,鼠标只能往右移动才能切换到外接显示器上,不能修改切换方向...
查看>>
学习笔记: CSS3 鼠标悬停动画
查看>>
ylbtech-cnblogs(博客园)-数据库设计-7,News(新闻)
查看>>
WCF 基础简介
查看>>
用Soap消息调用Web Services(续)
查看>>
atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结
查看>>
[LeetCode] Partition List 划分链表
查看>>
以Ajax方式显示Lotus Notes视图的javasript类库----NotesView2
查看>>
ylbtech-memorandum(备忘录)-数据库设计
查看>>
JAVA学习Swing章节按钮组件JButton的简单学习
查看>>
聊下 git 多账户问题
查看>>
Oracle数据库服务器CPU持续100%之等待事件asynch descriptor resize
查看>>
java8中的localdate和localtime用法举例
查看>>
[20160713]修改表结构增加1列与缺省值.txt
查看>>
Nginx工作原理和优化、漏洞(转)
查看>>
8天学通MongoDB——第四天 索引操作
查看>>
让c#的exe只要被修改就无法运行,支持混淆和数字证书
查看>>
导入https证书
查看>>
200多个js技巧代码(五)
查看>>