【发布时间】:2019-11-29 01:53:56
【问题描述】:
我的对话框是一个简单的框架,带有一个图像、一个用于显示问题的标签和两个带有 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 秒。
【问题讨论】:
-
对话框显示得非常快。如果您遇到响应缓慢的问题,我可能会问:您使用的是多大的图像?是否必须调整大小?您使用的是旧设备吗?您的布局是否过于复杂? DialogService 重置页面的内容,因此如果您有一个过于复杂的页面,您可能会在重新呈现时出现延迟
-
嗨@DanS。 DialogPage的图片不大(10KB的png文件),使用Aspect Fill我用Galaxy S10测试调用Dialog的Page由于组件数量有点复杂。
标签: xamarin.forms prism