Я пытаюсь загрузить простую карту google в проекте Xamarin.Android. У меня есть собственный рендерер, поэтому я не могу добавить это в Activity или через xaml или layout (у меня тоже нет фрагментов). Здесь вы можете найти мой код, и основная проблема: OnMapReady()
никогда не звонил.Показать карту в Xamarin.Android, OnMapReady никогда не вызывал
public class AndroidMap:FragmentActivity
{
private GoogleMap GMap;
public AndroidMap()
{
SetUpMap();
}
private void SetUpMap()
{
var mapFragment = FragmentManager.FindFragmentByTag("map") as MapFragment;
if (mapFragment != null)
return;
var mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeHybrid)
.InvokeZoomControlsEnabled(enabled: true)
.InvokeCompassEnabled(enabled: true);
var fragTx = FragmentManager.BeginTransaction();
mapFragment = MapFragment.NewInstance(mapOptions);
fragTx.Add(mapFragment, "map");
//if (!IsFinishing && !IsDestroyed)
// fragTx.Commit();
var mapReadyCallback = new MyOnMapReady();
mapReadyCallback.MapReady += (sender, args) =>
{
GMap = ((MyOnMapReady)sender).Map;//receive the Map object when completed
};
mapFragment.GetMapAsync(mapReadyCallback);
while (GMap == null)
Thread.Sleep(10);
MainView = mapFragment.View;
}
}
public class MyOnMapReady:Java.Lang.Object, IOnMapReadyCallback
{
public GoogleMap Map { get; private set; }
public event EventHandler MapReady;
public void OnMapReady(GoogleMap googleMap)
{
Map = googleMap;
var handler = MapReady;
if (handler != null)
handler(this, EventArgs.Empty);//send the Map object back when completed
}
}
Я ценю, если любое тело знает, почему оно всегда равно нулю.
Пожалуйста следуйте учебник - https://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/ –