Xamarin Forms Prism DialogService需要花费几秒钟才能显示出来

问题描述 投票:0回答:1

[我的对话框是一个带有图像的简单框架,一个用于显示问题的标签以及使用TapCommand的另外两个标签(是/否)。

我已经用DialogPage.xaml和DialogPageViewModel设置了容器,并注入了要打开对话框的ViewModel中。

这是我用来调用对话框的代码:

    public void ShowDialog()
    {
        _dialogService.ShowDialog("DiscardPopup", CloseDialogCallback);
    }

    void CloseDialogCallback(IDialogResult dialogResult)
    {            
        var goBack = dialogResult.Parameters.GetValue<bool>("GoBack");

        if (goBack)
            NavigationService.GoBackAsync();
    }

如果用户点击“是标签”,我将执行此命令:

YesCommand = new DelegateCommand(() => YesTapped());



 private void YesTapped()
 {
      IDialogParameters pa = new DialogParameters();
      pa.Add("GoBack", true);
      RequestClose(pa);
 }

[如果用户轻按“无标签”,我只是打个电话:

NoCommand = new DelegateCommand(() => RequestClose(null));

“问题”是触发ShowDialog时,DiscardPopup最多需要3秒钟才能显示出来。有没有办法使其更快?

TapCommands也会发生同样的情况,在调用RequestClose时需要2-3秒。

xamarin.forms prism
1个回答
0
投票

没有实际的代码确切地告诉您问题出在哪里,这是最好的猜测。根据您对我以上评论的反馈,我建议以下内容:

  • 尝试在没有复杂布局的测试页上显示对话框。我的猜测是您不会看到这么长的加载时间。如果是这种情况,则表明您的布局过于复杂,并且延迟时间是由于设备难以重新渲染视图而造成的]
  • 尝试使用Prism.Plugin.Popups。您需要初始化Rg.Plugins.Popup并注册DialogService。您可以在http://popups.prismplugins.com
  • 上看到有关此文档的信息
© www.soinside.com 2019 - 2024. All rights reserved.