当我发出 ActivityIndicator
请求时,我一直在尝试实现此 WebService
。我尝试了几种不同的解决方案,我正在尝试最简单的一种,如下所示:
https://www.youtube.com/watch?v=FmX4RD2iyWw
嗯,这对我不起作用。在我看来,它不接受我想给变量的新值。当我通过代码将 IsVisible
变量设置为 true 时,我可以看到那里的旋转圆,但是,当我将变量设置为 false 并单击按钮时什么也没有发生。此外,应该有一个“空”空间对应于不存在的元素。
任何帮助将不胜感激。
非常感谢!
登录页面.xaml :
<ContentPage.Content>
<StackLayout>
<ActivityIndicator x:Name="activityIndicator" IsVisible="false" IsRunning="True" WidthRequest="30" HeightRequest="30"/>
</StackLayout>
</ContentPage.Content>
<Button Text="Sign In" Clicked="SignIn" />
登录页面.xaml.cs:
void SignIn(object sender, EventArgs e)
{
activityIndicator.IsVisible = true;
Method();
activityIndicator.IsVisible = false;
}
答案 0 :(得分:1)
在评论的帮助下,我进行了一些小改动使其正常工作。我相信 await 命令是我遗漏的细节之一。 我不确定这是否是最好的解决方案。我很确定我应该为此使用某种标志,但我仍然不能这样做。
以下是两种解决方案:
1.通过将 IsVisible
属性设置为 FALSE
,您可以隐藏 ActivityIndicator
而没有为元素保留空间
登录页面.xaml :
<ContentPage.Content>
<StackLayout>
<ActivityIndicator x:Name="activityIndicator" IsVisible="false" IsRunning="True" WidthRequest="30" HeightRequest="30"/>
<Button Text="Sign In" Clicked="SignIn" />
</StackLayout>
</ContentPage.Content>
登录页面.xaml.cs:
async void SignIn(object sender, EventArgs e)
{
activityIndicator.IsVisible = true;
await Task.Delay(500);
Method();
activityIndicator.IsVisible = false;
}
2.通过将 IsRunning
属性设置为 FALSE
,您可以隐藏 ActivityIndicator
并为元素保留一个保留空间
登录页面.xaml :
<ContentPage.Content>
<StackLayout>
<ActivityIndicator x:Name="activityIndicator" IsVisible="True" IsRunning="False" WidthRequest="30" HeightRequest="30"/>
<Button Text="Sign In" Clicked="SignIn" />
</StackLayout>
</ContentPage.Content>
登录页面.xaml.cs:
async void SignIn(object sender, EventArgs e)
{
activityIndicator.IsRunning = true;
await Task.Delay(500);
Method();
activityIndicator.IsRunning = false;
}