Я пытаюсь реализовать в формах Xamarin следующее:
- Галерея, которая отображает изображения в сетке
- Миниатюры изображений загружаются с сервера
- Может быть до 10 тыс. Изображений
- Мне нужен механизм, который оптимизирует загрузку изображений (очевидно, загрузка 10К изображений одновременно не возможна)
- Каждое изображение будет иметь минимальное описание.
Я застрял на уровне проектирования архитектуры для такого решения в Xamarin Forms. В частности:
- Понятия не имею, какой элемент управления использовать, который будет отображать данные так, как мне нужно
- Понятия не имею, как / когда решать, какие изображения скачивать.
Я уже попробовал элемент управления с именем FlowListView
, который выглядел нормально, но вел себя странно на UWP (часть окна, в которую был помещен FLV, не перерисовывалась, изменение размера окна вызывало тонны GC, что снижало производительность.
Лучший подход, который я могу себе представить, это:
- Разработка пользовательского составного элемента управления - ScrollView с парой изображений и реализация его «виртуальности» вручную - когда пользователь прокручивает страницу вниз, повторно используйте некоторые изображения
- Положение изображений внутри этого ScrollView вручную после изменения размера или прокрутки
- ScrollView позволит мне определить, когда появится изображение, а затем запустить загрузку
Это кажется излишним для меня. Разве нет более простого решения этой проблемы?
Основной вопрос: На каком контроле я должен основывать свое решение, чтобы я мог выполнить все вышеуказанные требования?