我在片段中使用地图。第一次加载好,但是当我称之为第二次出错 -
: 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();
}
使用临时解决方案 -
我正在通过传递地图片段整数值来重新启动片段活动,以便在打开片段活动后它将直接加载地图片段。
答案 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。