我的布局如下。 当我第一次运行它时一切正常,我看到了地图:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@color/backNormal"
android:orientation="vertical"
>
<Button
android:id="@+id/buttonDriverAgreeYes"
android:gravity="center"
android:text='Agree'
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<fragment
android:id="@+id/map1"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
setContentView(R.layout.my_page1)
map1 = ((MapFragment) getFragmentManager().findFragmentById(R.id.map1))
.getMap();
但是当我第二次尝试显示此布局时,我收到运行时错误, 或者甚至当我试图展示另一个类似的布局时 地图名为map2:
setContentView(R.layout.my_page2)
map2 = ((MapFragment) getFragmentManager().findFragmentById(R.id.map2))
.getMap();
标记上的错误消息点&#34;片段&#34;:
android.view.InflateException: Binary XML file line #60: 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 android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377)
at android.app.Activity.setContentView(Activity.java:2144)
有什么想法吗? 谢谢!
答案 0 :(得分:0)
嘿因为你的map1 Fragment已经是View了。 并在视图上添加另一个map2片段视图。 所以它会生成一个错误
为此您只需在替换片段
之前放置此代码 Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();