私はXamarin.Androidプロジェクトで簡単なGoogleマップを読み込もうとしています。私は自分自身のレンダラーを持っているので、それをアクティビティやxamlやレイアウトを使って追加することはできません(私もフラグメントはありません)。あなたはここに私のコードを見つけることができ、主な問題はOnMapReady()
は決して呼び出されません。Show Map in Xamarin.Android、OnMapReady never called
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/ –