当前位置: 首页 > article >正文

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

  • 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.kler.cn/a/325473.html

相关文章:

  • python 多进程,程序运行越来越慢踩坑
  • 大模型论文精华-AI在医疗诊断、语言学习与情绪识别等领域的最新应用进展
  • 什么是SSL VPN?其中的协议结构是怎样的?
  • 大模型(LLMs)进阶篇
  • 前后端请求响应
  • 使用 Grafana api 查询 Datasource 数据
  • 数仓建模:DataX同步Mysql数据到Hive如何批量生成建表语句?| 基于SQL实现
  • cuda程序编译流程
  • Uniapp 跨域
  • 超好用的10款视频剪辑软件,从入门到精通
  • 浅谈GDDRAM的三种寻址模式
  • DigitalOcean 全球负载均衡是什么?
  • DBMS-2.3 数据库设计(3)——数据库规范化设计实现(3NF、BCNF模式分解)
  • 【有啥问啥】具身智能(Embodied AI):人工智能的新前沿
  • 基于Python大数据可视化的民族服饰数据分析系统
  • 智能编辑器、版本控制与自动化脚本
  • Spring Boot入门指南——从零开始构建你的后端服务
  • 自动化check是不是测试?
  • YoloV8改进策略:BackBone改进|PoolFormer赋能YoloV8,视觉检测性能显著提升的创新尝试
  • 《大型 C++项目的代码组织与架构设计秘籍》
  • Mac系统Docker中SQLserver数据库文件恢复记录
  • 【Linux】fork入门级使用
  • 轻量级日志管理系统SpringBoot3+Loki+grafana的使用实例
  • 数字经济时代 知识产权发展新趋势
  • 排序算法的分析和应用
  • 前端性能初探