MarkerClick works but InfoWindowClick does not open ViewModel

AndroidGoogle MapsXamarinxamarin.androidMvvmcross

Android Problem Overview


The following MarkerClick implementation works, perfectly fine. I could be able to open other Views via ShowViewModel

View.cs

mMap.MarkerClick += MMap_MarkerClick;

private void MMap_MarkerClick(object sender, GoogleMap.MarkerClickEventArgs e)
{
   ViewModel.MapInfoSelected(e.Marker.Title);
}

ViewModel.cs

public void MapInfoSelected(string name)
{
    ShowViewModel<StudentViewModel>(new { studentName = name});
}

InfoWindowClick does not trigger to open other View.

View.cs

mMap.InfoWindowClick += MMap_InfoWindowClick;

private void MMap_InfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e)
{
  ViewModel.MapInfoSelected(e.Marker.Title);
}

ViewModel.cs

public void MapInfoSelected(string name)
{
 // it hits here, but does not hit `StudentViewModel` Init() method, the app is frozen and do nothing
    ShowViewModel<StudentViewModel>(new { studentName = name});
}

I even tried the SetOnInfoWindowClickListener as follows, it also does not open the View.

 mMap.SetOnInfoWindowClickListener(this);

 public void OnInfoWindowClick(Marker marker)
 {
     ViewModel.MapInfoSelected(marker.Title);
 }

UPDATE:

It even hits the OnPause() method, but still it does not call StudentViewModel Init() method if I use InfoWindowClick event

 public override void OnPause()
 {
   base.OnPause();
   mMap.InfoWindowClick -= MMap_InfoWindowClick;
 }

Android Solutions


Solution 1 - Android

In onCreate, put mViewModel.getLiveData().observe(this, new Observer<List<YOUR STUFF>>(){ and in the .observe put the init() method, that is what works for me

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncasillasView Question on Stackoverflow
Solution 1 - AndroidPeterView Answer on Stackoverflow