2011-07-25 13 views
0

現在osmdroid jar 3.0.1を使用していて、 の「Dragable Space」の中にMapViewがあります画面間でスワイプ)。 私はスペースの間にユーザーがスペースをスワイプできるように、下部にバーを持っています タッチイベントがそのエリア外で発生する場合は、 mapView.onTouchEvent(イベント)を呼び出します。onTouchEventに対応するビュー内のonTouchEventの処理(OSMdroid 3.0.2で動作していた)

これは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); 
} 

これは(ビューは マップのインスタンスを渡す必要があります)厄介ですが、それはバージョン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に変更すると横方向の移動は無視されます。

ご指摘いただければ幸いです。

PS、これはOSMdroidリストからのクロスポストです。私はここにいくつかの読者がいることを願っています。

答えて

0

問題は、バージョン3.0.2と3.0.3の間でMapView.onTouchEventの名前がMapView.dispatchTouchEventに変更されたということです。

関連する問題