【发布时间】:2016-10-14 13:25:54
【问题描述】:
我有一个使用滚动视图的 Xamarin 表单。 我试图在顶部显示一个活动指示器,因为我在中间有一个 ListView。 但是当用户向下滚动时,不会显示加载。 所以,我需要帮助来禁用页面并在某个 z-index 显示加载,就像在弹出窗口中一样。
【问题讨论】:
标签: xamarin xamarin.forms scrollview activity-indicator
我有一个使用滚动视图的 Xamarin 表单。 我试图在顶部显示一个活动指示器,因为我在中间有一个 ListView。 但是当用户向下滚动时,不会显示加载。 所以,我需要帮助来禁用页面并在某个 z-index 显示加载,就像在弹出窗口中一样。
【问题讨论】:
标签: xamarin xamarin.forms scrollview activity-indicator
如果你想在屏幕加载时有一个覆盖,你可以这样做。
<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>
通过这种方式,您将始终在滚动视图上方显示活动指示器,并允许用户仍然滚动。
【讨论】:
Grid的原因吗?
我是 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>
【讨论】: