我想替换MapFragment但它没有隐藏

时间:2017-08-22 20:49:52

标签: android

我想替换MapFragment,但它不会隐藏两个片段。

我想要的是让它取代,工作。 因为一切都在我看来,并且mapFragment和片段二都不被理解

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.replace(R.id.contenido,fragment);
            fragmentTransaction.addToBackStack(ActivityHome.class.getName());
            fragmentTransaction.commit();

XML 

<RelativeLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.company.myapplication.Activity.ActivityHomeMap"
    tools:showIn="@layout/app_bar_activity_home_map"
    android:id="@+id/contenido">

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapHome"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

    </fragment>

</RelativeLayout>    

1 个答案:

答案 0 :(得分:0)

原因是它被定义为标签属性    android:name="com.google.android.gms.maps.MapFragment"

硬编码片段无法替换。只需删除属性并从java(动态)加载它然后进行替换。

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.contenido,fragment);
fragmentTransaction.addToBackStack(ActivityHome.class.getName());
fragmentTransaction.commit();