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