5

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

4

2 回答 2

11

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

<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>

通过这种方式,您将始终在滚动视图上方显示活动指示器,并允许用户仍然滚动。

于 2016-10-14T13:41:08.920 回答
1

我是 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>
于 2020-02-03T13:39:42.637 回答