When you run out of 1G heap size, start to optimize resources.
First check if you are not duplicating images instances, keeping same image in memory several times. For that use ffimageloading library (https://github.com/luberda-molinet/FFImageLoading) get it on nuget fast and easy.
Then optimize images you are using. For large images, other than icons, try converting everything to jpeg avoiding png with transparency, that once saved me for constant ooms.
Then try using thumbnails instead of images when you might have large uploaded images on remote. On your server pre-create thumbnails for different sizes, mini, small, medium, normal , large, xlarge etc, and load only images of size you really need. That saves a lot of memory and speed.
Another one is memory leaks. You might have cells or other elements still reside im memory if they didn't unsubscribe from messages, eventhandlers and some other. Imagine you could have several copies of a list full of images still in memory when you are sure that couldn't happen. More info here:
https://forums.xamarin.com/discussion/123876/should-we-unsubscribe-all-events-for-memory-management
https://forums.xamarin.com/discussion/87206/messaging-center-unsubscribe-from-all-messages-when-broadcast-stops