1

Google マップビューを既存のフラグメントに追加しようとしています。開発者ドキュメントの指示に従って、フラグメントに次の xml を含めました。

<fragment
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.MapFragment" />

ただし、毎回 IllegalArgumentException が発生します。

02-28 18:54:21.133: E/AndroidRuntime(11300): Caused by:     java.lang.IllegalArgumentException: Binary XML file line #158: Duplicate id 0x7f050019, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment

02-28 18:54:21.133: E/AndroidRuntime(11300): android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:285) 02-28 18:54:21.133: E/AndroidRuntime(11300) : android.view.LayoutInflater.createViewFromTag(レイアウトで

これに対する回避策はありますか?

4

1 に答える 1

0

レイアウトにフラグメントhttp://developer.android.com/about/versions/android-4.2.html#NestedFragmentsが含まれている場合、レイアウトをフラグメントにインフレートすることはできません

MapFragment はコードに動的に追加する必要があります。次に例を示します。

MapFragment fragment = new MapFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.mapView, fragment).commit();

そしてxmlレイアウトで:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >

<FrameLayout
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>

</RelativeLayout>
于 2013-03-25T13:47:30.083 に答える