I think you should consider recycling your views instead of disposing them and creating new ones. This is something Apple's MKMapView
provides, but you don't mention if you are using it or not. It works by adding a number of MKPlacemark
objects, that are represented by MKAnnotationView
recyclable views as you scroll around the map.
There is a reasonable example in Xamarin's Field Service App of using MKMapView's
DequeueReusableAnnotation
method. Scroll down to the MapViewDelegate
nested class.
If you are using another map library, like Google Maps, you should consider keeping a Queue<T>
of your views in order to recycle them. That way you can merely call AddSubview
and RemoveFromSuperview
and not create new objects over and over.