27

私はあなたの助けが必要です...私は3日までそれに取り組んでいます。私のアプリはフラグメントで動作しています。これらのフラグメントの 1 つは、Android 用の Google Maps V2 API からの地図を表示する必要があります。

現在、私はMapFragmentを使用していますが、当然のことながら、フラグメント内のフラグメントは良い考えではありませんが、機能し、マップが表示され、編集できますが、メインフラグメントに切り替えて戻ると。

原因: java.lang.IllegalArgumentException: Binary XML file line #59: ID 0x7f070041、タグ null、または親 ID 0x7f070040 が com.google.android.gms.maps.MapFragment の別のフラグメントと重複しています

android.app.Activity.onCreateView(Activity.java:4252) で

android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673) で

これが、別のフラグメントに移動して、マップを含むフラグメントに戻るときの原因です。これを修正するために3日まで検索していますが、素晴らしい結果はありません。

再開するには、レイアウト ファイルに MapFragment を含むフラグメントを呼び出すアクティビティがあります。さらに必要な場合は、お問い合わせください:)

ありがとう

編集:メインアクティビティでフラグメントを変更するコードは次のとおりです

private void swtichFragment(Fragment fragment, Bundle bundle)
{
fragment.setBundle(this, bundle);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.rightFragmentPlaceHolder, fragment);
fragmentTransaction.commit();
mRightFragment = fragment;
}
4

8 に答える 8

29

Fragment のレイアウトで MapFragment の代わりに MapView を使用します。MapView のライフサイクル メソッドを呼び出すことを忘れないでください。

  • onCreate(バンドル)
  • onResume()
  • onPause()
  • onDestroy()
  • onSaveInstanceState(バンドル)
  • onLowMemory()

ここで説明されているように。

ところで。MapFragment を使用しないでください。SupportMapFragment とサポート ライブラリのみを使用してください。

編集:

サポート ライブラリに切り替える場合は、コメント #1 のコードを使用できます: http://code.google.com/p/gmaps-api-issues/issues/detail?id=5064#c1

于 2013-03-19T23:12:48.393 に答える