Просмотр докладчиков в MVVMcross играет решающую роль в управлении тем, как модели просмотра представлены в приложении. Они действуют как посредники между модельным уровнем представления и фактическим пользовательским интерфейсом, что позволяет гибко и специфично для платформы представления представлений.
Роль просмотра докладчиков
1. Навигация и презентация: Просмотр докладчиков обрабатывает запросы из моделей просмотра для перемещения к новым представлениям или изменению представления существующих. Они решают, как отобразить эти представления на основе возможностей платформы и требований приложения [1] [2].
2. Реализация, специфичная для платформы: поскольку докладчики имеют непосредственное дело с уровнем представления, они по своей сути являются специфичными для платформы. Это позволяет разработчикам настраивать презентацию на основе типа устройства, например, использование вкладок на iOS и Android, но видение поворота на Windows Phone [1].
3. Настройка и гибкость: докладчики позволяют разработчикам реализовать различные стратегии презентации для различных размеров экрана или ориентации. Например, на небольшом экране телефона список и детали могут быть отображены на отдельных экранах, в то время как на планшете их можно отобразить бок о бок, используя разделительный вид [1].
4. Использование значений презентации: докладчики могут получать дополнительную информацию через `presentationvalues`, которые являются частью« mvxviewmodelrequest ». Это позволяет представлению моделей передавать подсказки докладчику о том, как должно быть представлено представление, например, очистка навигационного стека после операции входа в систему [7].
5. Default и Pustom Dusters: MVVMcross предоставляет докладчиков по умолчанию для каждой платформы, но разработчики также могут создавать пользовательские докладчики для удовлетворения конкретных потребностей приложений. Пользовательские докладчики могут переопределить поведение по умолчанию для реализации уникальных шаблонов навигации или стилей презентации [2] [4].
Ключевые методы зрения докладчиков
- `show (mvxviewmodelrequest)`: Этот метод вызывается, когда `showviewmodel ()` вызывается из модели представления. Он строит и отображает соответствующее представление на основе данных запроса [1].
- `Изменение Presentation (MVXPresentationHint Hint)`: Этот метод допускает изменения в представление, которые не включают в себя показ новой модели представления, такой как закрытие представления или изменение режима презентации [1].
Преимущества использования докладчиков View
- Разрешение: докладчики помогают отделить логику модели представления из презентации пользовательского интерфейса, что позволяет чистить и более обслуживаемый код.
-Кроссплатформенная последовательность: несмотря на специфичные для платформы реализации, докладчики гарантируют, что модели представления ведут себя последовательно на разных платформах.
- Настройка: они предоставляют гибкий способ адаптации пользовательского интерфейса к различным устройствам и размерам экрана без изменения логики модели представления.
Таким образом, докладчики View в MVVMcross необходимы для управления тем, как представления представлены на разных платформах, предлагая гибкость, настройку и чистое разделение проблем между моделью вида и слоями пользовательского интерфейса.
Цитаты:[1] https://gregshackles.com/presenters-in-mvvmcross-a-primer/
[2] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[3] https://learn.microsoft.com/en-us/archive/msdn-magazine/2011/december/mvpvm-design-pattern-the-model-view-presenter-viewmodel-design-pattern-for-wpf
[4] https://www.mvvmcross.com/mvvmcross-5-release/
[5] https://www.mvvmcross.com/documentation/platform/ios/ios-view-presenter
[6] https://softwareengineering.stackexchange.com/questions/60774/model-view-presenter-implementation-fhouthts
[7] https://gregshackles.com/presenters-in-mvvmcross-using-presentation-values/
[8] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms-view-presenter
[9] https://www.gatling.xyz/explaing-model-view-presenter/
[10] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter