我在我的XAML中有一个ListView,我在其中显示了来自我的数据库的一些数据,问题是在此期间ActivityIndicator显示为已被删除,但当我将其设置为False时,假设显示的内容,不是。我不知道我是否使用了ActivityIndicator错误,我想如何使用它呢?
XAML:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage...">
<ActivityIndicator x:Name="load1" Color="Red" IsRunning="true" />
<ContentPage.Content>
<ListView x:Name="XPS" ItemTapped="OnItemSelected"
...
</ListView>
</ContentPage.Content>
</ContentPage>
CS:
load1.IsRunning=false;
答案 0 :(得分:0)
您似乎错误地使用了ContentPage。该页面仅支持具有1个子元素(名为Content)。您试图在1个ContentPage上定义2个不同的内容。 Xamarin.Forms只会抛弃你的ListView,所以它永远不会出现。
所以现在你可能想知道......这件事怎么有用呢?好问题!当您需要在1个ContentPage中放置多个视图时,您需要使用布局。 Xamarin.Forms有一堆可用的布局,所有布局都有不同的行为 - 请参阅https://developer.xamarin.com/guides/cross-platform/xamarin-forms/controls/layouts/了解更多细节。
让我们查看一些代码....(我实际上没有测试过这个,我直接在这里输入它,所以你可能需要修复一些东西......)
更新的ContentPage XAML:
<ActivityIndicator x:Name="load1" Color="Red" IsRunning="true" />
<ContentPage.Content>
<StackLayout x:Name="Layout">
<ActivityIndicator x:Name="load1" Color="Read" IsRunning="true"/>
<ListView x:Name="XPS" ItemTapped="OnItemSelected" Opacity="0"
...
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
现在有些代码背后......
public void LoadYourStuff()
{
LoadSomeTotallyAwesomeData();
WriteSomeTotallyAwesomeDataIntoAFancyListView();
PerhapsDoMoreFancyThings();
Layout.Children.Remove(load1);
XPS.Opacity = 1.0;
}