Android - 如何检测屏幕上的触摸是“滚动”触摸?

2024-01-01

我正在用 Java 创建一个 Android 应用程序,其中有很多<TextView>屏幕周围,所有这些都定义了 onTouchListeners。它们被包裹在一个<ScrollView>因为它们占据的空间超出了屏幕的可用空间。

我的问题是:当我通过触摸屏幕并向上/向下移动手指向上/向下滚动应用程序时,滚动按预期工作,但触摸的 onTouchListener<TextView>也被解雇了(这可能也是预期的) - 但我不希望这种情况发生。我希望当我触摸屏幕滚动它时 onTouchListener 被忽略。

我怎样才能做到这一点?我不希望我的函数在用户滚动并“意外”在某个特定位置上触发 onTouchListener 时运行<TextView>.


经过更多搜索后,我发现这个解决方案 https://stackoverflow.com/questions/9965695/how-to-distinguish-between-move-and-click-in-ontouchevent/15799372#15799372史汀索尼.这个想法是检查之间的时间是否ACTION_DOWN and ACTION_UPevents 低于或高于给定的值ViewConfiguration.getTapTimeout().

从文档中:

[返回] 我们将等待查看触摸事件是点击还是滚动的持续时间(以毫秒为单位)。如果用户在此间隔内没有移动,则视为点击。

Code:

view.setOnTouchListener(new OnTouchListener() {

    private long startClickTime;

    @Override
    public boolean onTouch(View view, MotionEvent event) {

        if (event.getAction() == MotionEvent.ACTION_DOWN) {

            startClickTime = System.currentTimeMillis();

        } else if (event.getAction() == MotionEvent.ACTION_UP) {

            if (System.currentTimeMillis() - startClickTime < ViewConfiguration.getTapTimeout()) {

                // Touch was a simple tap. Do whatever.

            } else {

                // Touch was a not a simple tap.

            }

        }

        return true;
    }

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 如何检测屏幕上的触摸是“滚动”触摸? 的相关文章

  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 卡片视图 单击卡片移至新活动

    我是 Android 编程新手 正在研究卡片布局 我想知道如何使其可点击 android clickable true android foreground android attr selectableItemBackground 我的卡
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 插件“Android Bundle Support”不兼容

    大家好 自从上次更新以来 当我启动 android studio 时 我遇到了一个非常奇怪的错误 我有这个错误 插件错误 插件 Android Bundle Support 不兼容 直到构建 AI 195 SNAPSHOT 我在网上找不到任
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • Dagger 2 中“HasFragmentInjector”的实际用法是什么

    我之前已经实现了 dagger2 v2 2 但现在他们也添加了 dagger android 部分 所以我正在用它创建示例项目 我知道旧的方法论 Provide and Modules and 成分等注释 但从 Dagger 2 8 开始
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动
  • 有没有任何代码可以在android中设置壁纸而无需裁剪和缩放?

    我正在创建一个画廊应用程序 我的第一个应用程序 这是我的代码 Bitmap bmd BitmapFactory decodeStream is try getApplicationContext setWallpaper bmd catch

随机推荐

  • Pandas - 制作列 dtype 对象或因子

    在 pandas 中 如何将 DataFrame 的列转换为 dtype 对象 或者更好的是 变成一个因素 对于那些会说 R 的人 在 Python 中 我该如何as factor 另外 有什么区别pandas Factor and pan
  • Alamofire 嵌套请求

    我需要向同一个 API 发出三个不同的请求 这些调用都不依赖于其他调用 我目前的请求嵌套如下 API getPopularMovies responseObject error in if let results responseObjec
  • 关于序列点的解释

    最近 我看到很多关于一些疯狂但语法上允许的代码语句的输出的问题 例如i i 1 and i i i i 1 坦率地说 现实中几乎没有人在实际编程中编写任何此类代码 坦白说 在我的专业经验中 我从未遇到过此类代码 所以我通常最终会跳过这样的问
  • Oracle Contains 不起作用

    我的表中有一个列是上下文索引的 CREATE INDEX CIDX MUSTFIXBY ON TABLE MUST FIX BY INDEXTYPE IS CTXSYS CONTEXT NOPARALLEL 我正在尝试使用 where 条件
  • 如何使用 es6 风格导入来导入 MongoDB?

    希望这是一个简单的问题 我正在尝试使用 es6 import from 样式导入 MongoDB 如果我使用 node require 导入它工作正常 let mongo require mongodb let MongoClient mo
  • PowerMock:如何取消模拟方法?

    我有一个静态方法 使用 PowerMock 进行模拟以引发异常 它会删除文件 不幸的是 在我 After after each test 方法 我需要在没有模拟的情况下调用此方法 我怎样才能模拟一个方法 我没有看到相当于Mockito re
  • JQGrid 当 autowidth = true 时如何删除烦人的水平滚动条? (在 IE 中)

    在 IE 中使用 autowidth true 时 我似乎遇到了烦人的水平滚动条 这是怎么回事 我该如何摆脱它 我得到了完美的解决方案 问题出在 CSS 上 在 ui jqgrid css 中 表格布局是固定的 将其设置为自动 它将完美运行
  • ng-repeat 中的 angularJS 过滤器表达式

    我想知道实现这一点的最优雅和最简单的方法是什么 我需要为 ng repeat 添加一个过滤表达式 该表达式将从一个属性中过滤 2 个条件 在这个例子中http plnkr co edit OMQxXvSjtuudMRGE4eZ8 p pre
  • 如何将 Parquet 文件读入 Pandas DataFrame?

    如何在不设置 Hadoop 或 Spark 等集群计算基础设施的情况下将适度大小的 Parquet 数据集读取到内存中的 Pandas DataFrame 中 这只是我想在笔记本电脑上使用简单的 Python 脚本在内存中读取的适量数据 数
  • 将“昨天”设置为 Jquery 日期选择器

    我正在尝试将昨天设置为Jquery datapicker如下 datepicker datepicker setDate new Date getDate 1 然而 我总是得到今天的日期 代码位于 document ready它确实被执行了
  • R 如何从 geotiff 读取 nodatavalue 标签 - R 栅格包

    我遇到了一个不寻常的结果 R 中没有栅格数据值 下面的代码 我有一个没有导入数据值的栅格 9999 QGIS 读取 nodatavalue arcgis 也是如此 R 当读入geotiff时 将nodata值分配给 INF 我不知道为什么
  • Flurry 4.2.2 SDK 未在 iOS 中发送事件会话数据

    我知道 Flurry 的报告有延迟 但是 我们在第二天没有看到 Flurry 报告的任何结果 Flurry setDebugLogEnabled YES Flurry setLogLevel FlurryLogLevelDebug Flur
  • 在 TeamCity 中从外部文件设置构建参数

    我当前正在使用 TeamCity AssemblyInfo Patcher 在所有 C 程序集上设置程序集版本 我选择的版本方案是 Major Minor build number 0 当我在 TeamCity 中定义主要编号和次要编号时
  • 为什么 xamarin 突然不允许我部署到 iOS 设备

    今天 在我收到 xcode 同意新条款和条件的消息后 这种情况才开始发生 我无法在设备上 任何计算机上放置任何内容 不适用于我的 macbook 不适用于我的 mac mini 不适用于直到昨天还正常工作的现有项目 甚至不适用于全新的项目
  • 无限循环 React hooks

    我不明白为什么我会陷入无限循环useClick我看到我改变了里面的状态值使用效果 using setVal但 useEffect 应该只对第二个参数中指定的 onClick 起作用 我认为这是因为我传递的参数 onClick 已被记忆 但回
  • 自定义视图/操作/控制器在 Sails JS 中不起作用

    我一定做错了什么 但我看不到 基本上如果我通过创建一个控制器 模型sails generate controller products并在文件中 controllers ProductsController我向索引操作添加一些变量 例如 i
  • Laravel Facebook 登录 - 无回调(本地主机)

    我的第一个问题 是否可以在本地主机上进行测试 因为我可以想象这可能是我的问题 我阅读了文档并按照描述执行了所有操作 我浏览到 auth facebook 然后被重定向到 Facebook 在那里我 接受 这些条款 我被重定向到此链接 htt
  • Spring分页-请求参数

    我的 REST 控制器 GetMapping test public Page
  • nrwl/nx 工作区特定原理图

    我一直在研究 nrwl 扩展 它们看起来很棒 但是 当我按照他们的教程进行操作时工作区特定原理图 https nrwl io nx workspace specific schematics 最后一步没有显示要运行的命令 你能告诉我如何运行
  • Android - 如何检测屏幕上的触摸是“滚动”触摸?

    我正在用 Java 创建一个 Android 应用程序 其中有很多