加载片段(使用谷歌地图)在返回

时间:2016-05-13 08:19:40

标签: android google-maps android-fragments inflate-exception

我正在使用Google地图制作Android应用程序。我在显示包含地图的片段时遇到了问题。第一个时间我也不例外,但如果我回到地图上,我就有了这个例外:

  

android.view.InflateException二进制XML文件行#28:错误扩充类片段

     

java.lang.IllegalArgumentException引起:二进制XML文件行#28:重复标识0x7f0d0090,标记为null或父标识0xffffffff,其中包含{{{{ 1}}。

The stacktrace you can find on Pastebin.

这是我片段上的代码

com.google.android.gms.maps.SupportMapFragment

在这里您可以找到xml文件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(); } }

fragment_roete

以下是我用<?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> 替换旧片段的方法:

RoeteFragment

请注意以上代码: _fragmentReplaceListener.newFragment(RoeteFragment.newInstance(_roete)); _fragmentReplaceListener上的一个接口声明,包含以下代码:

MainActivity

请注意以上代码: @Override public void newFragment(Fragment fragment) { FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.replace(R.id.frmlytContentMain, fragment); transaction.addToBackStack("transaction_fromOldFragment_toNewFragment"); transaction.commit(); } frmlytContentMain

1 个答案:

答案 0 :(得分:0)

使用MapFragment而不是SupportMapFragment

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