1

语境

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

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

问题

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

4

1 回答 1

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 设计。

于 2017-09-26T01:03:37.793 回答