J'ajoute un autre fragment à l'écran. Cet écran a déjà une MapView dans un SupportMapFragment, donc le Fragment ajouté doit être au dessus de la MapView. Cette nouvelle vue couvre environ 2/3 de l'écran et une grande partie de la carte, mais lorsque je fais défiler la vue, la carte défile en dessous. Ce n'est pas ce que j'attendais car la nouvelle vue est ajoutée au-dessus de la carte. La nouvelle vue est constituée d'une mise en page relative contenant une ImageView qui englobe son contenu. Ainsi, lorsque l'on fait défiler l'ImageView (qui n'a aucune fonctionnalité), la MapView défile. Quelqu'un peut-il expliquer pourquoi cela se produit et, si possible, me fournir une solution ?
EDIT :
En fait, j'ai un MapView qui remplit tout l'écran. Ce code met en place mon 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
}
Ensuite, lorsqu'un utilisateur clique sur un marqueur, un fragment doit être affiché en haut de la vue cartographique.
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();
}
Tout cela fonctionne bien. La vue est affichée (qui occupe environ 2/3 de l'écran) mais l'utilisateur peut faire défiler la carte en faisant glisser la vue détaillée. La vue détaillée consiste en une mise en page relative avec beaucoup de texte et de boutons :
<?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>