首页 > 解决方案 > 单击 OverlayItem 时如何在父项上丢失触摸事件?

问题描述

我有一个 OSM MapView,我可以在其中设置一些标记来固定位置。这些标记有一个OnItemGestureListenerwithonItemSingleTapUp来打开一个包含一些信息的对话框。有MapView一个OnTouchListener让它全屏并隐藏一些GUI。

一切正常,这里的问题是当OverlayItem点击MapView TouchListener触发器时,这不应该发生。有一些方法可以在MapView单击标记时失去这种触摸?尝试了很多方法,但都没有奏效。mapview 触摸监听器总是首先被调用。

添加标记方法和手势监听器:

public void addMarker(double latitude, double longitude, Drawable icon, final int posicao, boolean isLocalizacaoUsuario) {
    GeoPoint center = new GeoPoint(latitude, longitude);
    OverlayItem overlayItem = new OverlayItem("", "", center);
    if (posicao >= 0)
        icon = criaMarcadorMapa(posicao, icon);

    overlayItem.setMarker(icon);
    ArrayList<OverlayItem> overlayItemArrayList = new ArrayList<>();
    overlayItemArrayList.add(overlayItem);
    final ItemizedOverlay<OverlayItem> locationOverlay = new ItemizedIconOverlay<>(overlayItemArrayList,
            new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {

MapView 触摸监听器:

  osm.isClickable();
    osm.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    tempoTouchDown = System.currentTimeMillis();
                    break;
                case MotionEvent.ACTION_UP:
                    tempoTouchTotal = System.currentTimeMillis() - tempoTouchDown;
                    controladorInterface(tempoTouchTotal);
                    break;
            }
            return false;
        }
    });

标签: javaandroidandroid-studioopenstreetmaposmdroid

解决方案


推荐阅读