如何在Exrin中实现可视化忙/工作指示器?

时间:2017-09-23 09:12:29

标签: xamarin exrin

上下文

我正在逐步发现Exrin基础设施。我探索了很多准备使用infra元素来在后台实现命令执行。在那些我看到IsBusyDelay,VisualState.IsBusy,Timeout消息等等。我也知道Exrin不依赖于Xamarin.Forms,所以我想,Exrin不应该提供真正的视觉实现,最后一步仍然留在我身上。 (这很酷,让我决定UI体验)

在我的ViewModel中,我设置了IsBusyDelay = 1000;。后台任务由Execution.ViewModelExecute(... my task here ..., currently 5000msec delay )

启动

问题

我想现在我必须在某个地方实现一个自动调用的处理程序或覆盖,并实现一些可视化用户体验以显示和隐藏繁忙/进入的用户体验反馈。我只是不知道在哪里以及如何...

1 个答案:

答案 0 :(得分:1)

这是您在视图中自己实现的内容。例如,如果您想要覆盖整个屏幕的内容,并带有加载指示符,则可以将其添加到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>

您可以在现有网格内的页面底部添加它。

然后当IsBusy被触发时,它会将其显示为覆盖图,带有活动指示符。

当然,这只是一种方法。你可以在一个活动指示器旁边,或者只是点击一个按钮,或者任何类似的按钮。这完全取决于您的UI设计。