【发布时间】:2015-01-09 07:24:31
【问题描述】:
我在选项卡视图中使用地图片段,在第一个和第二个选项卡中,我显示列表视图,但在最后一个选项卡中使用地图片段。当我第一次单击最后一个选项卡时,它显示正确的地图视图,但在第二次应用程序崩溃。请让我知道如何处理。 错误是
11-12 17:53:26.794: E/AndroidRuntime(10174): FATAL EXCEPTION: main
11-12 17:53:26.794: E/AndroidRuntime(10174): android.view.InflateException: Binary XML file line #118: Error inflating class fragment
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
11-12 17:53:26.794: E/AndroidRuntime(10174): at competent.groove.thegroove.partypartner.Party_Partner_Confirm_Fragment.onCreateView(Party_Partner_Confirm_Fragment.java:62)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1291)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.os.Handler.handleCallback(Handler.java:605)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.os.Handler.dispatchMessage(Handler.java:92)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.os.Looper.loop(Looper.java:137)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.app.ActivityThread.main(ActivityThread.java:4456)
11-12 17:53:26.794: E/AndroidRuntime(10174): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 17:53:26.794: E/AndroidRuntime(10174): at java.lang.reflect.Method.invoke(Method.java:511)
11-12 17:53:26.794: E/AndroidRuntime(10174): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
11-12 17:53:26.794: E/AndroidRuntime(10174): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
11-12 17:53:26.794: E/AndroidRuntime(10174): at dalvik.system.NativeStart.main(Native Method)
11-12 17:53:26.794: E/AndroidRuntime(10174): Caused by: java.lang.IllegalArgumentException: Binary XML file line #118: Duplicate id 0x7f060208, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.app.Activity.onCreateView(Activity.java:4248)
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
11-12 17:53:26.794: E/AndroidRuntime(10174): ... 20 more
而布局是
<?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" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
class="com.google.android.gms.maps.MapFragment" >
</fragment>
</RelativeLayout>
【问题讨论】:
-
你是在膨胀,在片段内映射还是在 Activity 内映射?
-
在片段中,在 OncreateView 我已经完成 if (googleMap == null) { googleMap = ((MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.map)).getMap( ); // 检查地图是否创建成功 if (googleMap == null) { Toast.makeText(getActivity(), "对不起!无法创建地图", Toast.LENGTH_SHORT) .show(); } }
-
从您的 Fragment 中的
FragmentTrasation中的FragmentTrasation中删除 Fragment .... -
在 Fragment 内不能添加 Fragment。
-
实际上当你第二次来到第一个标签时,它会再次调用该标签。
标签: android android-fragments map fragment