第二次调用地图片段获取错误

时间:2014-09-06 10:28:02

标签: android android-fragments map

我在片段中使用地图。第一次加载好,但是当我称之为第二次出错 -

: android.view.InflateException: Binary XML file line #7: Error inflating class fragment

xml代码 -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/mapfragment"
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:layout_alignParentTop="true"
        android:layout_gravity="center_horizontal"
        class="com.google.android.gms.maps.SupportMapFragment" />

    <TextView
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mapfragment"
         />
</RelativeLayout>

java代码 -

   map = ((SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.mapfragment)).getMap();

在下面的代码中尝试了堆栈上的许多问题但是没有工作 -

public void onDestroyView() {
        super.onDestroyView(); 
        Fragment fragment = (getFragmentManager().findFragmentById(R.id.mapfragment));   
        android.support.v4.app.FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
        ft.remove(fragment);
        ft.commit();
    }

使用临时解决方案 -

我正在通过传递地图片段整数值来重新启动片段活动,以便在打开片段活动后它将直接加载地图片段。

1 个答案:

答案 0 :(得分:0)

更改为:

<fragment
    android:id="@+id/mapfragment"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
     />

请参阅此链接for Duplicate id.它包含您收到的相同错误,并且对我有用,只需使用android:name属性而不是class attriute。