android SwipeRefreshLayout嵌套Webview滑动冲突问题解决
最近有一个需求,需要在网页中实现下拉刷新功能,这里遇到一个坑,加载网页的时候
webview
向上滑动不了了,看了一下网上的资料尝试过后都没有用,所以在这里做一下记录,希望可以帮到大家,由于两个控件都有滑动的事件,在向下滑动的时候滑动事件被SwipeRefreshLayout
控件优先覆盖了,这里的话可以监听webview
的滑动事件对SwipeRefreshLayout
是否允许下拉刷新进行控制。
1.layout布局
<android.support.v4.widget.SwipeRefreshLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><com.xxxxxx.view.MyWebViewandroid:layout_width="match_parent"android:layout_height="match_parent" /></android.support.v4.widget.SwipeRefreshLayout>
复制代码
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);}@Overrideprotected 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() {@Overridepublic void onScrollChanged(int scrollY) {if (scrollY == 0) {//开启下拉刷新mSwipeRefresh.setEnabled(true);} else {//关闭下拉刷新mSwipeRefresh.setEnabled(false);}}});
复制代码
OK,我的冲突问题解决了,不过开发中同一个需求根据项目情况实现的方式也会不一样,解决方式也会不同,这里提供的是解决方法之一。
转载于:https://juejin.im/post/5be40b6751882516d725af6a
android SwipeRefreshLayout嵌套Webview滑动冲突问题解决相关推荐
- 解决AppBarLayout嵌套WebView滑动冲突的问题
首先,自定义WebView import android.content.Context; import android.util.AttributeSet; import android.view. ...
- Android ViewPager嵌套ViewPager滑动冲突处理方法
dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发, 然后决定是自身消费当前事件还是继续往下分发给子控件处理.返回true表示不继续分发,事件没 ...
- 解决SwipeRefreshLayout与Banner滑动冲突
import android.content.Context; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import ...
- PullToRefreshListView中嵌套ViewPager滑动冲突的解决
PullToRefreshListView中嵌套ViewPager滑动冲突的解决 最近恰好遇到PullToRefreshListView中需要嵌套ViewPager的情况,ViewPager 作为头部 ...
- Android进阶必备:滑动冲突解决与事件分发机制(附视频讲解)这篇看完还不懂请寄刀片
1.前言 Android学习一段时间,需求做多了必然会遇到滑动冲突问题,比如在一个ScrollView中要嵌套一个地图View,这时候触摸移动地图或者放大缩小地图就会变得不太准确甚至没有反应,这就是遇 ...
- Android ScrollView嵌套ScrollView滚动的问题解决办法
引用:http://mengsina.iteye.com/blog/1707464 http://fenglog.com/article.asp?id=449 Android ScrollView嵌套 ...
- android中view手势滑动冲突的两种解决方法
android中view手势滑动冲突的解决方法,主要解决方法有两种,外部和内部拦截.有需要的可以参考下. Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是: ...
- ScrollView中嵌套WebView底部留白问题解决
ScrollView中嵌套WebView出现底部滑动留有大面积空白问题网络上有各种解决方案. 本博文基本上能终结该问题的出现,下面是网络上解决步骤: 1:第一种解决方案也是最多人提到的,在加载完成后重 ...
- Android viewpager 嵌套 viewpager滑动 点击事件冲突解决方案
为了解决这个问题.可以自定义viewpager,然后在里面监听首饰,自定义点击事件 package com.hpuvoice.view;import android.content.Context; ...
最新文章
- CIO和CTO到底有什么不同?
- 运用单例模式、建造者模式和策略模式实现异步加载Android联系人资料
- pytorch torch.Tensor.clone()(返回张量自身的副本。 副本具有与自身相同的大小和数据类型。)
- vm 安装jdk1.8_JDK 13:VM.events已添加到jcmd
- android 生成 资源文件,SVG-Android开源库——SVG生成Vector资源文件的编辑预览工具...
- Git 仓库配置不当 日产北美公司的源代码遭泄露
- sql 日期和当前日期时间差_SQL基础进阶16日期处理
- /etc/cron.deny 中关闭某一用户的 crontab
- spring学习笔记整理--03(Spring的三种实例化Bean的方式)
- FontLab 7 for Mac(字体编辑器)
- 小程序毕设作品之微信企业公司小程序毕业设计(4)开题报告
- python使用Tkinter库制作文件和文件夹创建功能
- 如何解决VMware Workstation上ubuntu出现Host SMbus controller not enabled
- 腾讯云容器安全已支持检测Apache Log4j2漏洞
- Mac连接不上无线网络的解决方法
- protocol buffers 序列化数据
- 四川长虹IHO-3300AD_高安版_S905L3芯_精简优化_线刷固件包
- 安卓029老年人监护系统APP
- 基于jQuery的HTML打地鼠游戏
- 网络安全之小技巧保护(IIS)Web服务器
热门文章
- plantuml样式_PlantUML 简明教程
- python 信息检索,python信息检索代码_信息检索_倒排记录表合并算法实现(python)...
- transactionscope 中的异步 处理 异常_协程中的取消和异常 | 异常处理详解
- javascript中replace使用方法总结
- anaconda安装yolov3_YOLOv3_图像识别_神经网络_人工智能
- ie浏览器修复_Win8系统电脑无法打开运行IE浏览器的解决方法
- 智能车竞赛技术报告 | 双车接力组 - 辽宁工业大学 - 灵越1队
- 2020年春季学期教学日历
- MOSFET驱动器汇总 : 单个N-CHANNEL,半桥,全桥,3项桥
- 舵机的脉冲指令的频率对于舵机运动影响