Ontoucheventにも応答するビュー内のOntoucheventの取り扱い(OSMDroid 3.0.2で動作するために使用)
-
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に改名されたことでした。
所属していません StackOverflow