View 的 onTouchListener 与 onTouchEvent

2024-02-05

视图之间有什么区别onTouchEvent :

public class MyCustomView extends View {
    // THIS :
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return super.onTouchEvent(event);
    }
}

and its onTouchListener :

MyCustomView myView = (MyCustomView) findViewById(R.id.customview);
myView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public void onClick(View arg0) {
        // do something
    }
});

or

public class MyCustomView extends View {

    public MyCustomView(Context context, AttributeSet attrs) {
        // THIS :
        setOnTouchListener(new View.OnTouchListener() {
            @Override
            public void onClick(View arg0) {
                // do something
            }
        });
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return super.onTouchEvent(event);
    }
}

如果这两个不同,
我们需要两者都实施吗?
首先调用哪一个?

如果我有一些滚动和缩放功能,我应该在内部实现它们吗onTouchEvent or onTouchListener ?


LeeYihong的回答是正确的,另一个非常重要的事情是写在http://developer.android.com/reference/android/view/View.OnTouchListener.html http://developer.android.com/reference/android/view/View.OnTouchListener.html:

回调[i.e. View.OnTouchListener -> onTouch(View v, MotionEvent event)]将在触摸事件之前调用[i.e. onTouchEvent(MotionEvent)]被赋予视图。

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

View 的 onTouchListener 与 onTouchEvent 的相关文章

  • Android 架构组件与 Firebase 特别是 Firestore

    我正在经历这个blog https firebase googleblog com 2017 12 using android architecture components html by 道格 史蒂文森 https twitter co
  • 当用户快速滚动时,如何延迟列表适配器中视图的加载

    我的列表视图中有从互联网下载的图像 我想在 getView 中添加一些内容 以便在用户快速滑动 滚动时它不会下载图像 我怎样才能开始这样做呢 您可以按照以下步骤延迟 ListView 中视图的加载 首先 你应该让你的ListView对象和Y
  • POST 请求出现 500 内部服务器错误

    这是我向服务器发送 POST 请求的代码 要发布到服务器的 JSON User Name dog Password 123 我如何创建 JSON 对象 object new JSONObject JSONObject jsonObject
  • 如何使用 Espresso 访问外部网站上的元素

    使用 espresso 我们单击 登录 按钮 该按钮将启动一个外部网站 Chrome 自定义选项卡 您可以在其中登录 然后重定向回我们的 Android 应用程序 Espresso 有没有办法 1 验证正在启动的 URL 是否正确2 访问网
  • 字符串生成器最大长度

    我想知道字符串生成器 或字符串缓冲区 的最大容量是多少 我的 Android 应用程序中有一个静态变量 它应该保存日志字符串 它最多可以容纳 130 行和大约 10000 个字符 我如果我附加更多内容 但它只是不显示 没有错误 没有例外 所
  • 如何对齐文本和图标可组合项,以便即使文本溢出后它们也能保持在一起?

    我有一个文本和一个图标可组合项 我希望图标粘在可组合项的右侧 这是我的代码 Row verticalAlignment Alignment CenterVertically horizontalArrangement Arrangement
  • Android Studio 1.2.1.1 中 Gradle 项目刷新失败

    我在全新安装的 Android Studio v 1 2 1 1 上创建了示例项目 但遇到了以下错误消息 Gradle project refresh failed in Android Studio 1 2 1 1 见下图 所以我试图在谷
  • 应用程序可能在其主线程上做了太多工作 - Android

    您好 我正在开发一个 Android 应用程序 当我尝试从我的应用程序发送电子邮件时遇到此错误 我在后台发送邮件而不使用基于意图这个链接 http www oodlestechnologies com blogs Send Mail in
  • 我什么时候应该使用 CGM 设备组和主题?

    我正在考虑将 Google Cloud Messaging 合并到我的应用程序中 我想向与用户关联的所有设备发送消息 乍一看 它看起来像 GCM 的设备群组消息传递 https developers google com cloud mes
  • PinnedHeader Google 加上 GridView?

    背景 Google google 应用程序可以很好地查看 亮点 类别中的图像 对于该屏幕上的每个部分 他们制作了一个标题 其中包含可单击的文本和一个用于选择该部分的所有照片的按钮 对于每个部分 他们还以网格状方式显示照片 它是这样的 这是另
  • Android:可以写入lib目录吗?

    是否可以以编程方式将文件复制到 data data application package lib 目录中 或在 data data application package lib 目录中创建符号链接 当尝试写入 lib 目录时 我总是收到
  • Kotlin + Room:java.lang.IllegalArgumentException:void 无法转换为元素

    我试图在我的 Java Kotlin 项目中添加 Room 但是当我尝试编译该项目时 它失败了 app kaptDebugKotlin出现以下错误 e java lang IllegalStateException failed to an
  • 如何从我的android联系人列表中的人名获取电话号码

    我想从我的联系人列表中的人名中获取他的电话号码 我已经使用了下面的代码 但它不能正常工作 告诉我我哪里错了 try cursor company getContentResolver query ContactsContract Data
  • android 销毁时是否有任何视图回调?

    我有一个自定义视图组件 我在片段或活动中使用了它 我想知道当它从片段 活动中销毁时是否有回调 View 没有回调 除了finalize 但我不认为这就是你所要求的 查看有onDetachedFromWindow 当它从屏幕上移除时 但这与它
  • 等待视图通过 IdleResource 变得可见

    我正在使用 Espresso 2 2 编写仪器测试 我想测试的流程 测试点击的单选按钮 onClick 向 API 发起请求 每次不同时间我收到回复后 积极响应触发活动中调用的接口方法 onRequestSuccess 我正在屏幕上显示名为
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • 在 Android KitKat 中接收彩信

    所以这个视频Android 4 4 短信 API http www youtube com watch v mdq0R2WQssQ DevBytes 解释了 KitKat 中 SMS API 的最新变化 他们还提供了示例项目的链接 http
  • 协程中未捕获异常

    我似乎无法在协程中完成错误处理 我读了很多文章并且异常处理文档 https kotlinlang org docs reference coroutines exception handling html exception propaga
  • Oreo:应用程序未运行时不会触发警报

    我有相对简单的设置 应该在一天中的特定时间触发警报并向用户显示通知 这是相关代码 设置闹钟 long inTime expirationTime Calendar getInstance getTimeInMillis 10000 Inte
  • Android:如何获取所有可用意图过滤器的列表?

    我搜索了 Android 文档 但由于某些疯狂的原因 我无法找到所有可用意图过滤器的列表 我正在寻找一个意图过滤器 它可以执行诸如通过广播接收器通知我特定活动 例如浏览器或电子邮件 已启动或位于前台之类的操作 有人能帮我吗 PackageE

随机推荐

  • 在 ruby​​ 中转义字符串中的单引号和双引号?

    如何转义字符串中的单引号和双引号 我想一起转义单引号和双引号 我知道如何分别通过它们 但不知道如何同时通过它们 e g str ruby on rails ruby on rails 我首选的方法是不用担心转义 而是使用 q 其行为类似于单
  • 如何修复 IPython 的“ImportError:没有名为 shell 的模块”错误

    我看到很多人建议我使用以下代码片段来嵌入 IPython shell 或从例如 中删除到 IPython shell Django 视图 from IPython Shell import IPShellEmbed ipython IPSh
  • 访问数据项目错误

    我有一个连接到 SQL Server 数据库的 Access 数据项目 最近我从SQL Server修改了数据库的结构 现在 每当我尝试打开其中一张表时 都会收到以下错误 Microsoft Office Access 找不到对象 SELE
  • Jetty(错误)配置:它不会从外部机器响应......为什么?

    我在 ubuntu 11 机器上安装了 jetty sudo apt get install jetty 之后我配置了上下文 war 文件和 NO START 变量 当我在同一台机器上测试时 一切正常 例如 curl http localh
  • 如何使用 Docker 在 Alpine Linux 上部署 Laravel Web 应用程序?

    我使用 PHP 的基础镜像在 ECS 上成功部署了 Laravel Web 应用程序 特别是7 3 apache stretch from https hub docker com php https hub docker com php
  • iFrame src 不是 javascript:false 但效果相同

    还有其他写法吗javascript false那个更令人愉快 我正在为 Intranet 应用程序 适用于 IE6 构建打印功能 并使用 iframe 制作打印页面 body append printIFrame attr style po
  • 以编程方式取消 aws s3 中文件的加密设置

    I m performing an android build via aws code build The apk files generated are by default applied with server side encry
  • 无法调用 std::max 因为 minwindef.h 定义了“max”[重复]

    这个问题在这里已经有答案了 我将如何实际调用 std max 该代码无法在 Visual Studio 2013 中编译 因为它采用 max 作为宏 std max 在 std 之后需要一个标识符 您可以取消宏定义 undef max Ed
  • 在资源管理器中打开

    如何通过 C 代码在资源管理器中打开路径 我用谷歌搜索 除了系统命令之外找不到任何东西来执行此操作 但是 我不希望它阻止或显示控制台窗口 您可能正在寻找ShellExecute http msdn microsoft com en us l
  • 将 Laravel 5.0 升级到最新版本(7.x)

    我被分配了一个旧的 Laravel 项目 版本 5 0 第一个任务是将 Laravel 从5 0版本到最新的版本 7 x 截至今日 从 Laravel 文档中 我发现这将需要一个痛苦的漫长过程 我知道有一项付费服务 叫做Laravel 转变
  • 如何从表中获取第二大或第三大条目[重复]

    这个问题在这里已经有答案了 谁能告诉我如何找到表中第 N 个最大的条目在甲骨文中 就像我们可以使用的最大的MAX 列名 有没有有效的方法来找到第n大的 SELECT FROM SELECT some column row number ov
  • 如何在android中保持按钮的固定宽高比

    我有一组水平布局的按钮 我已将可绘制图像设置为每个按钮的背景 但是 当我将线性布局设置为跨越屏幕宽度时 按钮会失去其纵横比 我想保持其纵横比不变 我的意思是 无论屏幕分辨率是多少 我都必须在整个应用程序中保持它的方形 我怎样才能做到这一点
  • 广度优先搜索中的计数级别(起始节点和目标节点之间的距离)

    谁能帮助我如何使用Java中的广度优先搜索来计算图表的访问级别 这是我的方法 我有起始节点 str 和结束节点 目标 当循环到达目标节点时应该停止 我现在想要的是计算从起始节点到结束节点的级别 public void bfs String
  • 我应该用鸭子类型语言定义接口吗?

    我正准备用鸭子类型语言 Groovy 编写我的第一个应用程序 如果我要用静态类型语言编写相同的应用程序 那么我需要定义一些接口 显然 由于 Groovy 中的鸭子类型 它们实际上并不是必需的 目前我认为无论如何将它们定义为需要在各种对象中实
  • Rails 中的请求 URI 太大

    我有两个相同 Rails 应用程序的运行环境 一是开发 二是分期 当我尝试在开发环境中运行我的应用程序时 它运行良好 没有任何异常 但是当我尝试在登台上运行相同的应用程序时 它会抛出请求 URI 太大错误的异常 我在开发和登台时都使用 we
  • Git 签出和合并而不触及工作树

    假设我有一个功能分支 我在将更改推回之前将上游更改合并到其中 git branch feature1 edit my code commit git fetch origin master git merge fetch head or r
  • 焦点放在与 Angular 中其他元素冲突的元素上

    I have focusout 事件于element1 and click 事件于element2 什么时候element1由于执行了单击事件而失去焦点element2 只有 focusout 被触发 click 事件没有被触发 这在 jQ
  • iPhone:HTTP 直播,无需任何服务器端处理

    我希望能够将 iPhone 摄像头的帧 视频 实时 流式传输到互联网 我在一个线程中看到过 从 iPhone 传输视频 https stackoverflow com questions 3444791 streaming video fr
  • 将 tweepy 流限制为特定数量

    class listener StreamListener def on status self status try userid status user id str geo str status coordinates if geo
  • View 的 onTouchListener 与 onTouchEvent

    视图之间有什么区别onTouchEvent public class MyCustomView extends View THIS Override public boolean onTouchEvent MotionEvent event