上下文
我正在逐步发现Exrin的基础设施。我探索了很多可以在后台使用infra元素来实现命令执行的方法。在我看到的IsBusyDelay、VisualState.IsBusy、超时值消息等等中,我也知道Exrin不依赖于Xamarin.Forms,所以我认为,Exrin不应该提供真正的可视化实现,最后一步还在我身上。(这很酷,让我来决定UI体验吧)
在我的ViewModel中,我设置了IsBusyDelay = 1000;。后台任务由Execution.ViewModelExecute(... my task here ..., currently 5000msec delay )启动
问题
我想现在我必须在某个地方实现一个处理程序或覆盖将被自动调用的(S),并实现一些可视化的UX来显示和隐藏一个繁忙的/正在进行的UX反馈。我只是不知道在哪里和怎么..。
发布于 2017-09-26 01:03:37
这是你会在视图中实现自己的东西。例如,如果您想要覆盖整个屏幕的东西,并带有加载指示符,您可以将其添加到您的UI中。
<Grid HorizontalOptions="FillAndExpand"
IsVisible="{Binding VisualState.IsBusy}"
BackgroundColor="#E6272C30"
VerticalOptions="FillAndExpand">
<Grid HorizontalOptions="Center" VerticalOptions="CenterAndExpand"
Height="200">
<ActivityIndicator Grid.Row="0"
IsRunning="{Binding VisualState.IsBusy}"
IsVisible="{Binding VisualState.IsBusy}">
<ActivityIndicator.Scale>
<OnPlatform x:TypeArguments="x:Double" Android="1" iOS="1.3" />
</ActivityIndicator.Scale>
</ActivityIndicator>
</Grid>
</Grid>您可以将其添加到页面的底部,即现有的Grid中。
然后,当IsBusy被触发时,它会将其显示为一个覆盖,并带有活动指示符。
当然,这只是一种方法。您可以在刚才单击的按钮旁边或内部有一个活动指示器,或者任何类似的东西。这完全取决于你的UI设计。
https://stackoverflow.com/questions/46377951
复制相似问题