我使用的是Xamarin,我修改了Google Maps API 2樣本,使用SupportMapFragment
對象而不是MapFragment
對象。使用SupportMapFragment代替MapFragment
我可以幫助InitMapFragment
功能。
下面是代碼:
private void InitMapFragment()
{
_mapFragment = FragmentManager.FindFragmentByTag("map") as SupportMapFragment;
if (_mapFragment == null)
{
GoogleMapOptions mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeNormal)
.InvokeZoomControlsEnabled(true)
.InvokeCompassEnabled(true);
FragmentTransaction fragTx = FragmentManager.BeginTransaction();
_mapFragment = SupportMapFragment.NewInstance(mapOptions);
fragTx.Add(Resource.Id.mapWithOverlay, _mapFragment, "map");
fragTx.Commit();
}
}
曾經是MapFragment
類型的_mapFragment
,但現在是SupportMapFragment
。
此外,此刻的活動是從Activity
繼承,應該是FragmentActivity
還是別的?
下面是我收到的錯誤:
Error CS0039: Cannot convert type 'Android.App.Fragment' to 'Android.Gms.Maps.SupportMapFragment' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion
Error CS1503: Argument 2: cannot convert from 'Android.Gms.Maps.SupportMapFragment' to 'Android.App.Fragment'
我敢肯定,我需要使用SupportFragmentManager
而非FragmentManager
,但想一些幫助,請。
編輯
當嘗試使用SupportFragmentManager,我收到以下錯誤:
Error CS0103: The name 'SupportFragmentManager' does not exist in the current context
在此先感謝
您是對的 - 您需要使用getSupportFragmentManager()並使用它來獲取SupportMapFragment。 –
你能看看我的編輯嗎? – user3548779
我從未使用Xamarin,但看起來事情有點不同,例如,沒有getSupportFragmentManager()。此鏈接可能有助於http://forums.xamarin.com/discussion/14731/fragment-support-fragment-manager-does-not-exist-in-current-context - 我會從這開始:Android.Support.V4 .App.FragmentManager。 –