我目前正在使用osmdroid jar 3.0.1,我在里面有一个MapView “Dragable Space”(您可以在屏幕之间滑动的视图)。 我在底部有一个栏,让用户在空格之间滑动, 如果触摸事件发生在该区域之外,我打电话 mapView.onTouchEvent(事件)。
这曾经在3.0.1中运行良好,但我尝试在osmdroid 3.0.4中使用它 只是似乎适用于垂直运动(我怀疑是相关的 一些触摸坡度设置)。
以下是我的可拖动空间视图中的代码。
@Override
public boolean onTouchEvent(MotionEvent event) {
// Check if the current space is the Map space and we are over the map
// difference is the Y value between the top and bottom of the map area.
if (this.mCurrentScreen == 1
&& event.getY() >= topY && event.getY() <= difference){
Log.d(TAG, "touch received inside Map Area");
// Pass the event directly to the mapView.
return mOsmv.onTouchEvent(event);
}
Log.d(TAG, "touch received outside Map Area");
return super.onTouchEvent(event);
}
虽然这很讨厌(视图必须传递一个实例) map),它在3.0.1和3.0.2版本中运行良好。但是,自从 3.0.3它不再有效。
现在有更好的方法将触摸事件传递给osmdroid地图吗?
我有一个演示项目来说明这个问题。全蚀 项目是on github。
您可以更改构建路径以使用3.0.1或3.0.2 jar,并且地图在较大的空间内正确滚动,但更改为3.0.3或3.0.4并忽略任何侧向移动。 / p>
非常感谢任何指导。
PS,这是来自OSMdroid列表的交叉帖子。我希望这里有更多的读者。
答案 0 :(得分:0)
问题是MapView.onTouchEvent在版本3.0.2和3.0.3之间重命名为MapView.dispatchTouchEvent