現在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リストからのクロスポストです。私はここにいくつかの読者がいることを願っています。