Baiduマップは最近のプロジェクトで役立ちます。一般的に、マップはインターフェイス全体に表示されますが、この製品を設計するときは、プロジェクトの関連情報を上部に入力し、下のマップで場所を選択します。プロジェクトの場所です。
レイアウトは下図のようになります(上部の一部がスライドアウトされており、マップの一部がスライドアウトされていません)
上記の情報は画面に入力されるため、ScrollviewにMapViewをネストするために使用されます。MapViewがスライドできることは誰もが知っていますが、MapViewは子コントロールであるため、Scrollviewにネストされている場合、スライドイベントは親によって制御されます。コンテナのScrollviewが消費されるため、マップをプルダウンするときは、毎回スクロールするScrollviewです。
私は何をすべきか???
BaiduMapでsetOnMapTouchListenerリスナーを設定するだけです。BaiduMapに触れると、Scrollviewのタッチを傍受できます。
次のような:
mBaiduMap.setOnMapTouchListener(new BaiduMap.OnMapTouchListener() {
@Override
public void onTouch(MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
scrollView.requestDisallowInterceptTouchEvent(false);
} else {
scrollView.requestDisallowInterceptTouchEvent(true);
}
}
});
これにより、スライドの競合が完全に解決されます。マップ上で指をドラッグすると、マップを好きなようにドラッグできます。