禁用 Xamarin 表单并显示 Activity 指示器

Disable Xamarin Form and Show Activity Indicator

我有一个使用滚动视图的 Xamarin 表单。 我试图在顶部显示一个 Activity 指示器,因为我在中间有一个 ListView。 但是当用户向下滚动时,不会显示加载。 因此,我需要帮助来禁用页面并在弹出窗口中显示某些 z-index 的加载。

如果你想在屏幕加载时有一个叠加层,你可以这样做。

<Grid>

    <ScrollView>
       <!-- Insert your page content in here -->
    </ScrollView>

    <ContentView IsVisible="false" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
         <ActivityIndicator IsRunning="false" />
    </ContentView>

</Grid>

当您将 ContentView 设置为 IsVisible="true" 时,它将覆盖在您的页面顶部。如果需要提供灰色效果,您可以在 ContentView 上设置背景颜色和不透明度。

或者您可以使用类似的方法并

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <ActivityIndicator Grid.Row="0" />

    <ScrollView Grid.Row="1">

    </ScrollView>
</Grid>

这样,您将始终在滚动视图上方显示 activity 指示器,并允许用户继续滚动。

我是 Xamarin 的新手,但您可以按照以下步骤操作。

 <Grid IsEnabled="{Binding IsBusy,Converter={converters:InverseBoolConverter}}"   >
...
     <ActivityIndicator      
              Color="{StaticResource LightGreenColor}"
              IsRunning="{Binding IsBusy}"
              IsVisible="{Binding IsBusy}"
              VerticalOptions="Center"
              HorizontalOptions="Center">
                <ActivityIndicator.WidthRequest>
                    <OnPlatform x:TypeArguments="x:Double">
                        <On Platform="iOS, Android" Value="100" />
                        <On Platform="UWP, WinRT, WinPhone" Value="400" />
                    </OnPlatform>
                </ActivityIndicator.WidthRequest>
            </ActivityIndicator>
        </Grid>