GoogleマップでAndroidアプリケーションを作成しています。私はマップを含む断片を表示することに問題があります。返品時にフラグメント(googleマップ付き)をロードすると例外が発生します
android.view.InflateException
:バイナリXMLファイルのライン#28:エラーによって引き起こさクラスフラグメントを膨らませる私は例外をしたんが、私は、私はこの例外を持っているマップに戻る場合は、最初のthime
java.lang.IllegalArgumentException
:バイナリXMLファイルライン#28:重複ID0x7f0d0090
、タグnull、または親ID0xffffffff
とcom.google.android.gms.maps.SupportMapFragment
の別のフラグメント。:ここ The stacktrace you can find on Pastebin.<?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 class="com.google.android.gms.maps.SupportMapFragment" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/map"/> </RelativeLayout>
は
public class RoeteFragment extends Fragment implements OnMapReadyCallback {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// exception thrown on line below
return inflater.inflate(R.layout.fragment_roete, container, false);
}
@Override
public void onMapReady(GoogleMap googleMap) {
// not so important code for the question.
}
public static Fragment newInstance() {
return new RoeteFragment();
}
}
ここ
XMLファイルfragment_roete
を見つける私の断片に私のコードですここ
は私がRoeteFragment
古い断片を置換する方法である:
_fragmentReplaceListener.newFragment(RoeteFragment.newInstance(_roete));
注コードによって上:_fragmentReplaceListener
MainActivity
にimpelementedと、このコードが含まれているインタフェースの宣言です:
@Override
public void newFragment(Fragment fragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.frmlytContentMain, fragment);
transaction.addToBackStack("transaction_fromOldFragment_toNewFragment");
transaction.commit();
}
上記コードによる注意:frmlytContentMain
は、FrameLayout
です。
チェックこの回答:http://stackoverflow.com/a/14695397/5828664 – Amesys
このhttp://stackoverflow.com/a/36357365/1320616 –