画面に別のフラグメントを追加しています。この画面にはすでにSupportMapFragmentにenMapViewがあるため、追加されたフラグメントはMapViewの上にあるはずです。この新しいビューは、画面の2/3とマップの大部分のようにカバーされていますが、ビューをスクロールすると、その下のMapViewがスクロールされます。新しいビューがMapViewの上に追加されるため、これは私が期待したものではありません。新しいビューは、コンテンツをラップするImageViewを含む相対レイアウトで存在します。したがって、imageview(まったく機能がない)をスクロールすると、MapViewがスクロールします。誰かがこれが起こる理由を説明でき、可能であれば、私に解決策を提供できますか?
編集:
基本的に私は画面全体を埋めるMapViewを持っています。このコードは私のマップビューを設定します:
public void setUpMapIfNeeded(int satelliteMode, LatLng startPoint, float zoomLevel) {
// Do a null check to confirm that we have not already instantiated the map.
if (mapView == null) {
// Try to obtain the map from the SupportMapFragment.
mapView = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview))
.getMap();
// Check if we were successful in obtaining the map.
if (mapView != null) {
setUpMap(satelliteMode, startPoint, zoomLevel);
}
}
}
private void setUpMap(int satelliteMode, LatLng startPoint, float zoomLevel) {
// more settings
}
次に、ユーザーがマーカーをクリックすると、マップビューの上部にフラグメントが表示される必要があります。
public void createDetailView() {
detailView = new DetailViewFragment();
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.viewLayout, detailView).commit();
fragmentManager.executePendingTransactions();
}
これはすべて正常に機能します。ビューが表示されます(これは画面全体の約2/3です)が、ユーザーは詳細ビューをスワイプするときにマップをスクロールできます。詳細ビューは、多くのテキストとボタンを含む相対レイアウトで構成されています。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="45sp">
<!-- a lot of text and buttons here -->
</RelativeLayout>