Android Webview和ScrollView冲突和WebView使用总结

news/2024/10/3 22:19:32/
  • 1.因为Webview和ScrollView都用滑动事件,导致webview很难被滑动,即使被滑动了一点也非常不顺畅
  • 2.解决滑动冲突问题后发现,如果webview嵌套的html中含有轮播图等还是有问题。

使用自定义ScrollWebView解决这个问题

public class ScrollWebView extends WebView{
    private float startx;
    private float starty;
    private float offsetx;
    private float offsety;

    public ScrollWebView(Context context) {
        super(context);
    }

    public ScrollWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ScrollWebView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                getParent().requestDisallowInterceptTouchEvent(true);
                startx = event.getX();
                starty = event.getY();
                Log.e("MotionEvent", "webview按下");
                break;
            case MotionEvent.ACTION_MOVE:
                Log.e("MotionEvent", "webview滑动");
                offsetx = Math.abs(event.getX() - startx);
                offsety = Math.abs(event.getY() - starty);
                if (offsetx > offsety) {
                    getParent().requestDisallowInterceptTouchEvent(true);
                    Log.e("MotionEvent", "屏蔽了父控件");
                } else {
                    getParent().requestDisallowInterceptTouchEvent(false);
                    Log.e("MotionEvent", "事件传递给父控件");
                }
                break;
            default:
                break;
        }
        return super.onTouchEvent(event);
    }
}
 


http://www.ppmy.cn/news/1533602.html

相关文章

初识算法 · 双指针(2)

目录 前言: 盛最多水的容器 题目解析: 算法原理: 算法编写: 有效三角形的个数 题目解析: 算法原理: 算法编写: 前言: 本文介绍两个题目,盛最多水的容器和有效三…

【Spring】深入理解控制反转-IOC

目录 一、Spring_ioc_01项目 1. jdbc.properties 2. 高耦合 3. 中耦合 4. 低耦合 二、Spring_ioc_02项目 1. xxx.properties(键值对存储) 2. 解耦的方式创建对象 3. 调用getBean()方法并传入xxx.properties对应键获取其相应的值 三、Spring_ioc_03项目 1. spring两大…

taro RN 左右滑动切换页面

引入 react-native-pager-view 组件 import React, { Component } from react import Taro from tarojs/taro import { View, PagerView, Button } from tarojs/components import PagerView from react-native-pager-view;export default class MyComponent extends Taro.C…

Linux下send函数和recv函数

1. 基本介绍 send 函数 send 函数用于向一个已连接的套接字发送数据。它的典型使用场景是在TCP通信中,客户端和服务器之间交换数据。 函数声明: ssize_t send(int sockfd, const void *buf, size_t len, int flags); 参数解释: sockfd&a…

【Java SE 题库】移除元素(暴力解法)--力扣

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 解法(快慢“指针”) 3. 源码 4. 小结 1. 题目 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素。元素的顺…

网络协议一般分为几类?如何划分

网络协议是计算机网络中用于通信的规则和标准,确保不同设备之间能够有效地传输数据。网络协议可以根据不同的标准和功能进行分类,主要分为以下几类: 一、按功能划分 应用层协议 应用层协议负责特定应用程序之间的通信,它们定义了…

(22)activeMQ部署

activeMQ集群部署: 前言:从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式, 增加了基于ZooKeeper + LevelDB的Master-Slave实现方式,其他两种方式目录共享和数据库共享依然存在。 25.213.39.177 25.213.39.97 25.213.39.86 主机 集群端…

通过python-api使用openai的gpt

目前,OpenAI 提供的 GPT 模型可以通过其提供的 API 进行访问。以下是如何通过 Python 使用 OpenAI GPT API 的详细步骤: 1. 安装 OpenAI Python 库 首先,你需要安装 OpenAI 的 Python 库。可以通过 pip 安装: pip install open…