Xamarin XAML ActivityIndi​​cator,内容不显示

时间:2015-11-13 14:47:49

标签: xaml xamarin

我在我的XAML中有一个ListView,我在其中显示了来自我的数据库的一些数据,问题是在此期间ActivityIndi​​cator显示为已被删除,但当我将其设置为False时,假设显示的内容,不是。我不知道我是否使用了ActivityIndi​​cator错误,我想如何使用它呢?

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;

1 个答案:

答案 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;

}