java - 单击 OverlayItem 时如何在父项上丢失触摸事件?
问题描述
我有一个 OSM MapView,我可以在其中设置一些标记来固定位置。这些标记有一个OnItemGestureListener
withonItemSingleTapUp
来打开一个包含一些信息的对话框。有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;
}
});
解决方案
推荐阅读
- javascript - CORS 策略已阻止从源请求获取的访问权限。请求的资源上不存在“Access-Control-Allow-Origin”标头
- tensorflow - CNN 中特征图和激活图损坏的原因是什么?
- python - 在由元素在列表中的列表组成的 numpy 数组中查找索引
- javascript - 将页脚放在反应原生抽屉的底部
- apache-nifi - Nifi MergeContent 截断/丢失流文件内容
- rust - Rust 嵌套闭包移动和多个所有者
- microsoft-graph-api - 使用 Graph API 在 SharePoint 中向用户授予权限的问题
- postgresql - 超时 Progresql
- php - Laravel Excel 在排队时不起作用
- javascript - 使用 JavaSript,我如何在具有多个值的日期列的表中突出显示“今天”的每个日期