我正在使用内部使用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)吗?