У меня есть ListView в моем приложении Xamarin Android, где у меня более 100 элементов списка. Каждый элемент имеет компонент Google Maps, показывающий карту области. Я понял, что это приводит к задержке вертикальной прокрутки ListView (из-за того, что каждый компонент довольно сложный в вычислительном отношении, я полагаю). Каждая область имеет ширину х 128 пикселей.
Теперь я думаю о том, как показать карту области и при этом иметь хорошую производительность при прокрутке. Одна идея состоит в том, чтобы создать небольшое изображение каждой области и вместо этого связать его с элементом ListView. Однако, насколько я понимаю, технически невозможно создать изображения из API Карт Google (карта + маркер).
Как бы вы порекомендовали это решить? Как вы думаете, у меня есть другое узкое место, а не 100 экземпляров? В моих тестах довольно очевидно, что он начал отставать, когда я добавил компонент. Однако компонент скрыт (IsVisible = "False"), если вы не развернете элемент списка, но его "там" и задержка сохранятся. Нормально ли иметь столько компонентов в первую очередь?
Моя карта является частью сетки и выглядит следующим образом:
<Frame Grid.Row="4" x:Name="expandArea" BackgroundColor="Transparent" IsVisible="False" Padding="0" Margin="0" HasShadow="True">
<maps:Map x:Name="userMap" MinimumHeightRequest="128" HeightRequest="128" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>
</Frame>