当前位置: 首页 > 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/news/325473.html

相关文章:

  • 数仓建模: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的使用实例
  • 数字经济时代 知识产权发展新趋势
  • 排序算法的分析和应用
  • 前端性能初探
  • 城市生命线安全监管系统:智慧城市的守护者
  • string类的使用(上)
  • Maven-四、继承
  • 人工智能赋能产业升级!亲笔签数字笔迹AI识别技术在第二十四届工博会上大放异彩
  • 开启争对目标检测的100类数据集-信息收集
  • [001-03-007].第28节:SpringBoot整合Redis:
  • Agilent E4438C 6G产品说明书
  • cnn机器学习时python版本不兼容报错
  • 游戏怎么录制?王者荣耀游戏录制指南:iOS与电脑端全面教程
  • JavaScript异步编程:async、await的使用