使用MapFragment但第三方库需要SupportMapFragment

时间:2013-11-08 18:51:03

标签: android android-fragments

我正在使用内部使用android.support.v4.app.Fragment的库WizardDroid

在我的应用程序中,我使用普通的片段(android.app.Fragment)。

我还使用Google Maps v2,我在一个继承自wizardroid类(它本身继承自android.support.v4.app.Fragment)的片段中检索。

public class CreateEventStepMap extends WizardStep

{     @覆盖     public View onCreateView(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState)     {         查看v = inflater.inflate(R.layout.create_event_map,container,false);

    final Event event = ((EventInfo)getActivity()).getEvent();

    final GoogleMap googleMap = ((com.google.android.gms.maps.SupportMapFragment)getActivity().getFragmentManager().findFragmentById(R.id.map)).getMap();


    return v;
}

}

正如您所看到的,我投射到com.google.android.gms.maps.SupportMapFragment(),因为findFragmentById(R.id.map)返回支持地图片段。我不能这样做,因为我会收到编译错误。

这是地图片段所在的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

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

我的应用程序中的其他任何地方都使用了正常的片段!

当我运行应用程序时,我得到以下异常: 11-08 20:47:19.178:E / AndroidRuntime(10347):android.view.InflateException:二进制XML文件行#8:错误膨胀类片段

这是因为我在同一个应用程序中混合Fragments并支持地图片段,或者我在做其他蠢事吗?

如果答案是第一个,那么解决方案是改变wizardroid库的代码(我不需要支持版本&lt; 4)吗?

0 个答案:

没有答案