我在屏幕上添加了另一个片段。此屏幕已经在 SupportMapFragment 中有 en MapView,因此添加的 Fragment 应该位于 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),但用户可以在滑动详细视图时滚动地图。detailview 包含一个包含大量文本和按钮的相对布局:
<?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>