[Android开发]使用ViewPagerIndicator开源库处理其中事件分发机制

一款值得关注的开源企业管理ERP系统 盒木ERP是一款开源的现代化企业管理系统,采用前后端分离架构,后端基于Python+Django,前端使用Vue+Ant Design。系统涵盖采购、销售、库存、财务等核心业务模块,支持移动端操作和PDA扫码。具有开源免费、技术先进、功能完善等特点,适合中小企业使用或二次开发。项目提供详细部署指南,支持Docker容器化部署,是学习ERP系统开发和企业数字化转型的优秀选择。 阅读详情

这里写图片描述

首先我先说一下我的UI框架,主界面是RadioGroup+ViewPager,另外还有一个侧滑是Fragment+ViewPager,然后我又在侧滑菜单的ViewPager上加了一个开源库ViewPagerIndicator,但是我发现ViewPagerIndicator上的Tab是不可以滑动的,我一想应该就是事件分发机制,所以我在ViewPagerIndicator的源码TabPageIndicator中重写了dispatchTouchEvent方法:

    /**
     * 事件分发, 请求父控件及祖宗控件不要拦截事件
     */
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        getParent().requestDisallowInterceptTouchEvent(true);// 用getParent去请求
        return super.dispatchTouchEvent(ev);
    }

这样ViewPagerIndicator上的Tab就可以滑动了,顺便在网上查里一些资料,介绍一下AndroidTouch事件传递机制:

android系统中的每个ViewGroup的子类都具有下面三个和TouchEvent处理密切相关的方法:
1)public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent

2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent

3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent

我们可以看一下ACTION_DOWN事件处理流程:

这里写图片描述

说明:

首先触摸事件发生时(ACTION_DOWN),由系统调用Activity的dispatchTouchEvent方法,分发该事件。根据触摸事件的坐标,将此事件传递给out的dispatchTouchEvent处理,out则调用onInterceptTouchEvent 判断事件是由自己处理,还是继续分发给子View。此处由于out不处理Touch事件,故根据事件发生坐标,将事件传递给out的直接子View(即middle)。

Middle及Center中事件处理过程同上。但是由于Center组件是clickable 表示其能处理Touch事件,故center中的onInterceptTouchEvent方法将事件传递给center自己的onTouchEvent方法处理。至此,此Touch事件已被处理,不继续进行传递。

参考网站:http://www.cnblogs.com/jqyp/archive/2012/04/25/2469758.html

ollama如何在自己的服务器上跑Qwen3(小白必看) 在国内下载ollama最新安装包时,使用curl -fsSL https://ollama.com/install.sh | sh命令可能会遇到网络问题导致下载进度停滞。为了解决这一问题,可以通过国内的镜像源进行下载,例如使用modelscope社区提供的最新ollama镜像仓库。具体步骤包括:首先通过pip install modelscope安装modelscope,然后使用modelscope download命令下载ollama-linux镜像,接着进入下载目录并赋予安装脚本执行权限,最后运行安装脚 阅读详情

相关推荐

基于CH32X035的USB双K型热电偶温度计:硬件设计、冷端补偿与信号放大详解

本文详细介绍了基于CH32X035单片机设计USB双K型热电偶温度计的完整方案。重点解析了硬件设计中的核心挑战:如何利用精密运放GS8552-SR进行信号放大,以及采用NTC热敏电阻和查表法实现精确的冷端补偿。项目通过USB供电通信,实现了双路高精度温度测量与显示,为电子爱好者和工程师提供了实用的参考设计。

weixin_42153793的博客 160

Android-ViewPagerIndicator框架使用——使用概要

http://www.cnblogs.com/qinghuaideren/p/3487820.html

Habby的专栏 751

电阻应变式力传感器

电阻应变式力传感器

lu_fresh_student的博客 5073

ViewPager嵌套事件冲突问题(dispatchTouchEvent)

在做一个新闻客户端的时候用到了几个ViewPager嵌套,这时候在滑动的时候出现了父类ViewPager拦截了子ViewPager的情况,解决方法如下: 自定义一个ViewPager继承ViewPager,重写它的dispatchTouchEvent方法,代码: public class HorizontalViewPage extends ViewPager { ...

weixin_30448685的博客 367

LEF文件介绍及其生成

介绍LEF文件及其生成方法

weixin_43249158的博客 3万+

《30天入门 SAP BTP 开发》教程的目录和使用说明,建议收藏

本教程分为两部分:第一部分为SAP BTP入门系列,包含从基础概念到操作步骤的系统性学习内容,建议零基础用户按顺序学习;第二部分为专题文章集合,涵盖SAP BTP的多个技术点,适合已有基础的用户按需查阅。教程包含账号申请、Global Account操作、Java应用开发、AI工具使用等丰富内容,同时解答常见问题并提供实战案例。所有文章均附带详细链接,便于读者系统学习或针对性查阅。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4380

ViewGroup事件处理之动态切换ViewPagerIndicator页签

在上一篇中实现了ViewPagerIndicator来绑定ViewPager动态转换小标题的功能,这一篇会通过事件的角度,去实现滑动ViewPager,转换切换不同的小标题,并在恰当的时候,拉出SlidingMenu。 Android系统中的每个ViewGroup的子类都具有下面三个和TouchEvent处理密切相关的方法: 1)public boolean dispatchTouchEven

小磊's blog 1116

基于YOLO26的实时目标追踪实战:从训练到视频追踪(附完整可视化代码)

核心组合:YOLO26(高精度检测)+ ByteTrack(稳定追踪)是实时目标追踪的最优工业组合,Ultralytics内置集成无需额外开发;训练优化:追踪场景需优先提升检测框精度(增加box损失权重),保证ID稳定性;可视化核心:为每个ID分配唯一颜色、绘制运动轨迹、显示FPS,是落地场景的必备功能;性能调优:轻量化模型+降分辨率+OpenVINO导出,可在边缘设备(如研华工控机)实现实时追踪。这套代码可直接复用到智慧园区、停车场、工业产线等场景,仅需修改park.yaml中的类别和。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 571

事件分发机制的再整理

分析的对象为:MotionEvent;         三个很重要的方法:dispatchonTouchEvent()(事件分发)、onInterceptTouchEVent()(事件拦截)、onTouchEvent()(事件处理);         传递规则:当一个点击事件发生时候,传递顺序依照Activity->window->顶级的View;对于一个ViewGroup来说,点击事件首先也

zjngogo的博客 2207

YOLOv11涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv11涨点

🔥本文提出AttnRes残差自注意力模块,通过深度维度的注意力加权机制替代传统固定残差累加方式,使YOLOv11网络能自适应选择更有价值的历史层特征进行聚合。该方法缓解了浅层细节信息在深层传播过程中被稀释的问题,有效融合浅层纹理与深层语义特征,提升小目标、密集目标和复杂场景的检测能力。AttnRes还改善了深层网络的梯度分布与训练稳定性,增强模型收敛质量和泛化能力。实验表明,该模块能以较小计算开销显著提升YOLOv11的特征表达能力、检测精度和整体鲁棒性。文中详细介绍了模块结构、实现原理、优势特点

Ai缝合怪、助力小伙伴高效发论文 125

基于YOLOv11的仓库机器人导航系统设计与实现:Amazon Robotics Challenge解决方案

本文将详细介绍一个基于YOLOv11目标检测算法的仓库机器人导航系统,该系统能够准确识别托盘(pallet)和箱子(box),为机器人提供精确的导航信息。而基于深度学习的视觉导航系统能够实时识别环境中的关键物体,如托盘和箱子,从而实现更智能的路径规划和货物搬运。YOLOv11作为YOLO系列的最新演进版本,在检测精度和速度上都有显著提升,非常适合仓储环境中的实时物体检测任务。YOLOv11在保持实时性的同时,提高了对小物体和密集物体的检测能力,这对仓储环境中的托盘和箱子检测尤为重要。

YOLO 303

ViewPagerIndicator完全指南:Android滑动指示器的终极解决方案

想要为你的Android应用添加专业级的滑动指示器吗?ViewPagerIndicator正是你需要的终极解决方案!这款强大的开源库为ViewPager和ViewPager2提供了多种滑动指示器样式和动画效果,让应用的页面导航更加直观美观。无论你是Android开发新手还是经验丰富的开发者,ViewPagerIndicator都能帮助你快速实现各种精美的指示器效果。😊 ## 📱 ViewPa

gitblog_00144的博客 902

CH7034B显示模块原理图设计,已量产

显示桥接板的价值,不在于简单把 RGB 排线换成另一种接口,而在于能否把并行视频、时钟、显示控制、模拟输出和辅助配置同时组织成稳定系统。当前这张 CH7034B 原理图就是这种思路:U3 CH7034B 作为核心桥接芯片,输入侧是 LCD_R0~R7、LCD_G0~G7、LCD_B0~B7、LCD_DE、LCD_HSYNC、LCD_VSYNC、LCD_CLK 与 LCD_BL,输出侧则通过 DAC0~DAC2 和 DDC_SC/DDC_SD 形成模拟显示接口边界。

不脱发的程序猿 161

ViewPagerIndicator源码解析:从BaseIndicatorView到IndicatorView的实现原理

ViewPagerIndicator是一个功能强大的Android指示器库,支持多种指示器样式和滑动模式,完美兼容ViewPager和ViewPager2。这个开源项目为Android开发者提供了高度可定制的页面指示器解决方案,让轮播图、引导页等场景的指示器实现变得简单高效。本文将从源码层面深入解析其核心架构,带你理解从BaseIndicatorView到IndicatorView的实现原理。

gitblog_01143的博客 851

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android开源库选型指南与性能优化实践

在Android开发中,开源库是提升开发效率的关键组件,涵盖UI、网络、数据库等多个领域。通过模块化设计,开发者可以快速集成成熟解决方案,如Glide实现高效图片加载,GreenDAO优化数据库操作。这些库基于特定技术原理,如RxAndroid采用响应式编程模型,LeakCanary运用内存监控机制。合理选型能显著提升应用性能,例如在百万级数据操作中,ORM框架可降低60%的耗时。典型应用场景包括电商应用的图片缓存、社交平台的实时通信等。本文重点解析SlidingMenu、ViewPagerIndicato

chuannaoxuan4674的博客 303

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android ViewPagerIndicator 终极指南:7种标签页实现原理深度解析

ViewPagerIndicator 是 Android 开发中用于增强 ViewPager 交互体验的强大开源库,提供多种样式标签页指示器,让你的应用导航更加专业和用户友好。本文将深入分析 ViewPagerIndicator 的7种核心实现原理,帮助你彻底掌握这个优秀的UI组件框架。 ## 🎯 什么是 ViewPagerIndicator? ViewPagerIndicator 是一个专

gitblog_01423的博客 328

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

GitHub 上排名前 100 的 Android 开源库介绍

GitHub 上排名前 100 的 Android 开源库介绍

coding 4340

开源项目源码解析-ViewPagerindicator 源码解析

ViewPagerindicator 源码解析 本文为 Android 开源项目源码解析 中 ViewPagerindicator 部分 项目地址:ViewPagerIndicator,分析的版本:8cd549f,Demo 地址:ViewPagerIndicator Demo 分析者:lightSky,校对者:aaronplay,校对状态:完成 1. 功能介绍 1.1

天海行者的专栏 1065

Android应用使用的技术框架和开源库

App应用本质上是一个apk包, 即一个zip包, 可以直接显示其中的内容. 通过apk文件, 我们可以获知apk的版本信息, so库和第三方库, 并了解一些主流公司的应用框架. 分析工具主要是ApkTool和ClassyShark, 本人比较喜欢Shark工具. 我使用ClassyShark分析一下美团的框架, 也可以按照这个原理, 分析其他App的基本架构. Shark 让

amaoziyou的博客 500

Android ViewPager与Indicator实现网易新闻Tab导航

在Android开发中,ViewPager作为核心页面容器组件,配合指示器(Indicator)可实现流畅的Tab导航效果。其底层基于Adapter模式管理页面生命周期,通过预加载机制和滑动事件处理保证交互流畅性。ViewPagerIndicator库采用解耦设计,提供多种可扩展的指示器样式,特别适合新闻资讯、电商详情等需要频繁切换的内容型场景。通过合理配置预加载数量、优化页面回收机制以及避免绘制性能问题,可以打造类似网易新闻客户端的丝滑标签页体验。当前推荐结合ViewPager2与TabLayout实现现

weixin_33694172的博客 397

Android开源库选型与性能优化实战指南

Android开源库作为移动开发的基石,通过模块化组件显著提升开发效率。其核心原理是通过Gradle依赖管理集成功能模块,开发者需要掌握依赖冲突解决、版本控制等技术要点。优秀的开源库选型能降低30%以上的开发成本,特别是在网络通信(Retrofit)、内存检测(LeakCanary)等关键场景。现代Android开发中,Jetpack组件与Kotlin协程的整合成为趋势,同时需要关注Compose等新兴技术带来的架构变革。本文通过ViewPagerIndicator等经典库的源码分析,揭示性能优化与兼容性处

weixin_34226706的博客 337

干货分享:分析Android应用使用的技术框架和开源库

App应用本质上是一个apk包, 即一个zip包, 可以直接显示其中的内容. 通过apk文件, 我们可以获知apk的版本信息, so库和第三方库, 并了解一些主流公司的应用框架. 分析工具主要是ApkTool和ClassyShark, 本人比较喜欢Shark工具. 我使用ClassyShark分析一下美团的框架, 也可以按照这个原理, 分析其他App的基本架构. Shark 让

Solongdd的博客 453

android UI开源库

. ActionBarSherlock ActionBarSherlock是一个独立的Android设计库,可以让Android2.x的系统也能使用ActionBar。此 外,ActionBarSherlock还能够允许开发者只通过一个API,就可以方便地使用和设计ActionBar。 ActionBarSherlock还可以自主判断选择并调用原生ActionBar还是扩展ActionBar...

weixin_30920597的博客 121

Github TOP100 Android开源

排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库。 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 20

欢迎加入Android老司机学院 482266514(技术交流群)密码优快云 1049

CodeKK源码地址

http://codekk.com/open-source-project-analysis Volley 源码解析 Volley 是 Google 在 2013 I/O 大会上推出的 Android 异步网络请求框架和图片加载框架。特别适合数据量小,通信频繁的网络操作。Volley 主要是通过两种 Diapatch Thread 不断从 RequestQueue 中取出请求,根据

yanggz888的专栏 819
上一篇: [Android开发]使用XUtils框架出现的问题记录
下一篇: [Android开发]WebView里改变浏览字体大小
陶程
博客等级 码龄12年 360粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值