J'essaie d'utiliser SupportMapFragment à l'intérieur d'un fragment. Lors du premier lancement, la carte est affichée sans erreur.Android SupportMapFragment à l'intérieur du fragment
Mais lorsque j'effectue une transaction vers un autre fragment, et après ce retour sur la carte, j'ai un fragment de gonflement d'erreur. Mais je n'ai aucune erreur quand je fais une nouvelle instance du fragment qui contient la carte.
Voici ma mise en page:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
tools:context=".ui.HomeMapFragment">
<fragment
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/footer"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:name="com.google.android.gms.maps.SupportMapFragment" />
<FrameLayout
android:id="@+id/footer"
android:layout_height="110dp"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@color/colorPrimary"/>
</RelativeLayout>
Et j'instancier mon SupportMapFragment dans onCreateView comme ceci:
//Instantiate the map fragment
mHolder.supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
Et j'appelle onMapReady à onActivityCreated:
if (mHolder.supportMapFragment != null)
mHolder.supportMapFragment.getMapAsync(this);
journal d'erreur:
FATAL EXCEPTION:
main Process: xxx.xxxx.xxxx, PID: 4441
android.view.InflateException: Binary XML file line #8: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at xxx.xxxx.xxxx.ui.HomeMapFragment.onCreateView(HomeMapFragment.java:234)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:971)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1670)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:586)
at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:189)
at com.tapptic.collecto.ui.HomeActivity.onBackPressed(HomeActivity.java:71)
Je sais que ce n'est pas une bonne chose à coder en dur un fragment dans la mise en page d'un fragment, mais je l'ai déjà essayé d'effectuer cela en utilisant un frameLayout mais je reçois beaucoup d'autres erreurs
erreur post Bûches trop –
j'ai édité mon post –