You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MapView的OnTouchListener返回布尔值的作用及使用方法

Android OnTouchListener onTouch方法返回值详解

返回值的作用

这个返回值是用来标识当前回调是否消费了本次触摸事件:

  • 返回true:代表你已经处理完这次触摸事件,事件不会再向下传递,也不会交给View本身的默认触摸处理逻辑执行
  • 返回false:代表你没有消费这次事件,事件会继续传递给View自身的onTouchEvent方法处理,也会继续分发给后续的触摸事件回调

返回值的流向

这个返回值不会作为MapView的字段存储在map实例中,它是直接返回给Android的触摸事件分发系统的ViewGroup事件分发逻辑使用的,仅用来控制事件传递链路,不会持久化保存在View对象里供外部读取,所以你无法通过读取MapView的某个字段拿到这个返回值。

需求实现方案

你要实现「用户触摸地图后停止自动对齐GPS中心点」的逻辑,不需要依赖系统的返回值存储,自己新增一个标志位即可,示例代码如下:

// 全局添加标志位,默认开启自动居中
private boolean isAutoCenterEnabled = true;

MapView map;    
map = findViewById(R.id.view_map);     
map.setOnTouchListener(new View.OnTouchListener() {
      @Override
      public boolean onTouch (View v, MotionEvent event) {
          // 检测到触摸按下事件时关闭自动居中
          if (event.getAction() == MotionEvent.ACTION_DOWN) {
              isAutoCenterEnabled = false;
          }
          // 照常返回false,不影响MapView本身的滑动、缩放等原生触摸逻辑
          return false;
      }
});

之后在原有自动对齐GPS的逻辑中,先判断isAutoCenterEnabled为true时再执行对齐操作即可,如果需要恢复自动居中,手动把这个标志位改回true即可。

内容的提问来源于stack exchange,提问作者Jonathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:15:03