Лучший способ обеспечить плавный переход страниц в .NET MAUIC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Лучший способ обеспечить плавный переход страниц в .NET MAUI

Сообщение Anonymous »


Используя навигацию оболочки в dotNET MAUI, каков наилучший (наиболее надежный) способ гарантировать, что переходы страниц всегда анимируются и делают это максимально плавно на разных устройствах?

Я нашел самое простое решение, но мне интересно, есть ли лучший способ сделать это. То, как я это делаю сейчас, не кажется слишком надежным, особенно на разных (более медленных и быстрых) устройствах. Действительно ли это лучший/наиболее приемлемый способ?

Актуальная проблема:
Я заметил, что на одной из моих страниц нужно загрузить немного больше данных. Хотя, на мой взгляд, это вполне приемлемая сумма, переход страниц не отображается, поскольку загрузка данных вызывает задержку.

Мое текущее решение:
Я перехожу на страницу с помощью Shell await Shell.Current.GoToAsync($"{nameof(PageName)}", true, Params);, и это очень примитивный/простой пример пункта назначения. страница, которую я бы хотел:

XAML:

Модель просмотра:

По сути, я откладываю все действия в OnAppearing(), чтобы сначала анимировать, прежде чем фактически заполнять страницу:

публичный класс PageNameViewModel: BaseViewModel, IQueryAttributable { элементы частного списка {get; набор; } = новый(); public ObservableCollection Items {get; набор; } = новый(); общественная команда OnAppearingCommand {get; частный набор; } общедоступная PageNameViewModel() { OnAppearingCommand = новая команда (OnAppearing); } public void ApplyQueryAttributes (IDictionary Params) { items = Params["Items"] как предметы; } частный асинхронный void OnAppearing() { // Задержка здесь для ожидания анимации страницы перед ее заполнением: ждать Task.Delay(500); foreach (элемент var в элементах) { Предметы.Добавить(пункт); } } } Обратите внимание, что в моем случае мне приходится загружать данные внутри события Appearing в моей ViewModel из-за интерфейса IQueryAttributable. Свойства устанавливаются из параметров запроса после конструктора, но до события появления, в котором я заполняю представление. Я использую инструментарий сообщества MAUI для преобразования события появления страницы в команду.

Я думаю, что это может быть не очень надежно, поскольку на старых и медленных устройствах время задержки может быть слишком коротким. На устройствах высокого класса время задержки может даже стать очевидным и раздражающим.

Это приемлемый способ сделать это?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»