解决Android嵌套H5,自定义控制页面能否实现下拉刷新功能

news2024/11/17 3:57:12

目录

  • 使用场景
  • 问题描述
  • 思路分析
  • 解决方案
  • 结语

在这里插入图片描述

使用场景

  关于Android嵌套H5页面使用下拉刷新功能的问题:当我们在Android中使用第三方框架SmartRefreshLayout实现App的下拉刷新功能时,如果H5页面有部分功能设计到上下滑动的话,就会引起“误触”下拉刷新功能的操作,那么我们应该怎么去解决这个问题呢?


问题描述

  由于我们使用的是Android的下拉刷新,并非是H5的下拉刷新,当H5页面中有个别弹窗页面(比如:地址上下滑动选择组件),遇到这个情况的都应该知道,如果不做处理,当你在使用H5地址选择页面的时候,你滑动地址选择的瞬间,由于是上下滑动,因此也会触发Android的下拉刷新,虽然下拉幅度不大,但是这个原本是不应该进行滑动的页面,它也确实因为你上下滑动选择地址的时候“误触”了下拉操作,即使它不是真正意义上的下拉刷新,但是出现这个拉动的动作,也是会引起用户体验满不好的,下面请看大致思路实现!


思路分析

  相信有点熟悉Android开发的朋友在看思路分析前,已经有了自己的思路:直接在初始化下拉刷新initRefresh()方法中验证你想要的页面能不能执行下拉操作不就行了吗?实践告诉你这个是无法实现的,因为下拉刷新方法在初始化的时候,已经实例过一次,后续调用的时候,并不会重复执行setOnRefreshListener监听事件,只是执行它里面的onRefresh方法,这个执行原理在此就不做详细分析了,涉及到底层原理,生命周期等问题,感兴趣的自行去研究探讨!

  正确的做法可以在webView.setWebViewClient里面的onPageFinished(WebView view, String url)方法实现,由于onPageFinished(WebView view, String url)中url会获取到每次点击请求的路径,所以可以该方法里面针对路径判断来区分哪个页面禁用下拉刷新功能。


解决方案

  根据上述的思路分析,我们可以在Android的webView.setWebViewClient里面的onPageFinished这个方法中实现,具体源码参考下面:

//判断指定页面禁用下拉刷新操作
RefreshLayout refreshLayout = (RefreshLayout) findViewById(R.id.swipe_refresh);
boolean address = url.contains("填H5页面请求的路由,可以是与众不同的一小段");
if (address) {
    refreshLayout.setEnableRefresh(false);//是否启用下拉刷新功能
    return;
}
refreshLayout.setEnableRefresh(true);//是否启用下拉刷新功能

  到此就完成了,重新执行app安装,你就会发现,你指定的页面就不能进行下拉刷新的操作了,赶紧去试试吧!祝“码”到成功!

结语

  此方案仅供参考,你可以根据自行的项目需求进行优化,具体实现哪些页面禁用下拉刷新的功能,你就继续添加url.contains就好了。

在这里插入图片描述
创作不易,感谢您的点赞与支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins Kubernetes 应用部署与容器构建

Jenkins & Kubernetes 应用部署与容器构建 文章目录Jenkins & Kubernetes 应用部署与容器构建1. 前言2. Jenkins 配置 kubernetes credentials3. Jenkins 插件3.1 安装 Kubernets Plugin3.2 安装 Docker Plugin3.3 安装 Git Plugin4. Jenkins 连接 minikube 集群5. 配置…

MQ高级(一)消息可靠性

消息从生产者发送到exchange,再到queue,再到消费者,有哪些导致消息丢失的可能性? (1)发送时丢失: 1️⃣生产者发送的消息未送达exchange 2️⃣消息到达exchange后未到达queue (2&…

【物理应用】基于傅里叶伽辽金谱法二维纳维-斯托克斯附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

[附源码]计算机毕业设计教育企业网站Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

当我们说大数据Hadoop,究竟在说什么?

前言 提到大数据,大抵逃不过两个问题,一个是海量的数据该如何存储,另外一个就是那么多数据该如何进行查询计算呢。好在这些问题前人都有了解决方案,而Hadoop就是其中的佼佼者,是目前市面上最流行的一个大数据软件&…

【精品】【含数据+代码+论文链接】交通流预测代码集合

前言 交通流预测代码集合 一、T-GCN 一种用于流量预测的时间图卷积网络 准确、实时的交通预测在智能交通系统中起着重要作用,对城市交通规划、交通管理和交通控制具有重要意义。然而,交通预测一直被认为是一个开放的科学问题,受限于城市…

Python完成期末大作业:简易计算器【案例分享】

嗨害大家好鸭!我是小熊猫~ 好像好久都没给大家更新啦! 这次来给大家做一个我弟刚刚做完的期末考试大作业 做一个简易计算器 要求: 1.要有加减乘除四个方法的编写2.提交的代码悟编译错误3.代码需要有基础的健壮性判断 源码、资料电子书点击…

汉明码(海明码)解析

文章目录前言启发汉明码介绍怎么实现汉明码?怎么实现更高模块的汉明码?为什么校验位一定是2的n次方?用更简洁的方式理解汉明码前言 相信使用过光盘的读者都会有这样一种经历,如果不小心刮花了盘面,大部分情况下,把它放进DVD机器却仍然可以播放视频,这是为什么呢? 因为光盘…

Tomcat打破双亲委派机制实现各应用程序的类库相互隔离原理与实现demo

1、实现原理 以Tomcat类加载为例,Tomcat 如果使用默认的双亲委派类加载机制行不行? 我们思考一下:Tomcat是个web容器, 那么它要解决什么问题: 1. 一个web容器可能需要部署两个应用程序,不同的应用程序可能会…

C++对const引用的特殊处理、为什么函数形参的引用建议加上const?只是为了防止值被修改吗?

前言:我们知道普通变量、指针、函数形参,加上const修饰表示不可改变,但是引用前面加上const就有特别之处了 目录 const日常使用 const引用的特别处理 const引用创建临时变量规则 引用形参声明为const的三个理由 const日常使用 我们知道如…

resnet(2)------看看卷积

文章目录1 . 人脑是怎么认识到物体的2. 卷积3. 卷积核1 . 人脑是怎么认识到物体的 在谈卷积之前,我们先来了解一下人是怎么认识物体的。 人脑是个非常复杂的结构,是由无数个神经元连接起来,每个神经元都有自己负责记忆的东西。当人眼看到物体…

关于自增约束auto_increment需要注意的地方,mysql8版本的报错

目录一,自增约束auto_increment需要注意的地方附:就算插入数据失败,也进行自增:二,自增约束auto_increment在MySQL8版本的报错:一,自增约束auto_increment需要注意的地方 1 创建数据库表class&…

Logistic回归

通常,Logistic回归用于二分类问题,例如预测明天是否会下雨。当然它也可以用于多分类问题. Logistic回归是分类方法,它利用的是Sigmoid函数阈值在[0,1]这个特性。Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回…

啊?我这手速也太差了吧?——C++Easyx“挑战六秒”小游戏

🐑本文作者:C橙羊🐑 🎮🔊本文代码适合编译环境:DEV-C💻 ✨🧨温馨提示:此文转载于codebus🎉🎠 最近橙羊在Easyx官网的codebus里随便逛逛的时候&am…

SpringMVC从入门到精通(一)

文章目录1. SpringMVC基本概念1.1 三层架构1.2 MVC架构1.3 什么是SpringMVC1.4 SpringMVC的优势2. SpringMVC 的入门2.1 入门程序2.2 SpringMVC执行原理刨析2.3 SpringMVC的核心执行流程2.4 SpringMVC的组件3. RequestMapping注解4.请求参数绑定4.1 参数绑定4.2 请求参数乱码问…

磨金石摄影技能干货分享|优秀纪实摄影作品欣赏—北京记事

1、蜂窝煤 三名青年男子踏着三轮车拉着满满一车蜂窝煤。脸上流露出清澈的笑容。这是九十年代的北京,背后的天安门格外的显眼。那时候处于改革开放的初期,虽然还不是很富裕,但大家脸上洋溢着幸福与希望的笑容。 蜂窝煤是冬天必备,九…

【强化学习论文合集】十一.2018国际表征学习大会论文(ICLR2018)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

历届青少年蓝桥杯python编程选拔赛 STEMA评测比赛真题解析【持续更新 已更新至34题】

蓝桥杯python选拔赛真题 历届青少年蓝桥杯python编程选拔赛真题解析 选拔赛 真题34-回文数升级 【蓝桥杯选拔赛真题34】python回文数升级 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析_小兔子编程的博客-CSDN博客python回文数升级2020年青少年组python蓝桥杯选拔赛真题一、…

剑指Offer39——数组中出现次数超过一半的数字

摘要 剑指Offer39 数组中出现次数超过一半的数字 本题常见的三种解法: 哈希表统计法: 遍历数组 nums ,用 HashMap 统计各数字的数量,即可找出 众数 。此方法时间和空间复杂度均为 O(N) 。数组排序法: 将数组 nums 排…

Python学习-8.1.1 标准库(time库的基础与实例)

2.1 time库 time库是Python提供的处理时间标准库。time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可以让程序暂停运行时间。 2.1.1 时间处理函数 time.time()函数:获取当前时间戳。 代表着如今的时间与1970年1月1日0分0秒…