Ontoucheventにも応答するビュー内のOntoucheventの取り扱い(OSMDroid 3.0.2で動作するために使用)

StackOverflow https://stackoverflow.com/questions/6819543

  •  26-10-2019
  •  | 
  •  

質問

私は現在、osmdroid JAR 3.0.1を使用していますが、内部にMapViewがあります。ドラッグ可能なスペース「(画面間をスワイプできるというビュー)。下部には、ユーザーがスペースの間をスワイプできるバーがあり、タッチイベントがその領域の外で発生する場合は、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);
}

これは厄介ですが(ビューはマップのインスタンスに渡す必要があります)、バージョン3.0.1および3.0.2では正常に機能しました。ただし、3.0.3以降は機能しなくなりました。

現在、タッチイベントをOSMDroidマップに渡すより良い方法はありますか?

この問題を示すデモプロジェクトがあります。完全なEclipseプロジェクトはです githubで.

ビルドパスを変更して3.0.1または3.0.2 jarを使用でき、マップは大きなスペース内で正しく巻き付けられますが、3.0.3または3.0.4に変更され、横向きの動きは無視されます。

どんなガイダンスも大歓迎です。

PS、これはOSMDroidリストからのクロスポストです。ここにもう数人の読者がいることを願っています。

役に立ちましたか?

解決

問題は、mapview.ontoucheventがMapview.dispatchToucheventに名前がバージョン3.0.2と3.0.3に改名されたことでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top