我在XamarinForms项目中遇到了ActivityIndicator的奇怪行为。该指标在WinPhone81中完美加载,但第一次没有在布局的中间加载,但它从第二次到无限运行完美。以下是我使用的代码:
在XAML中:
<StackLayout x:Name="blueBar" Padding ="0,0,0,0" Orientation ="Vertical"
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" >
</StackLayout>
在CS中:
ActivityIndicator loading = new ActivityIndicator();
blueBar.Children.Add(loading);
loading.IsRunning = true;
//some functions
blueBar.Children.Remove(loading);
有没有人知道它为什么会这样??
任何建议/指南/帮助将不胜感激.. !!
提前致谢。
Note: The ActivityIndicator works well and fine in Droid & iOS projects.
输出:我正在体验
1.首次执行页面:
2.同一页面的第二次执行:
输出:根据-Chandresh Khambhayata
答案 0 :(得分:0)
您似乎需要先将StackLayout
放在AbsoluteLayout
内,以便将ActivityIndicator
调整到中间位置。
这应该install curl and Git with openssl帮助你。
还没有尝试过,但看起来你需要做很多事情来实现它。
希望它有所帮助!
答案 1 :(得分:0)
如果您想在屏幕中央显示ActivityIndicator,那么您最需要应用HorizontalOptions="Center"
和VerticalOptions="Center"
我正在使用以下XML代码,它对我来说非常适合。
<StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
<ActivityIndicator Color="White" HorizontalOptions="Center" VerticalOptions="Center" />
<Label Grid.Row="1" x:Name="LabelLoading" HorizontalOptions="Center" TextColor="White" Text="Loading..." FontFamily="Droid Sans Mono" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" />
</StackLayout>
以编程方式设置活动指标。
ActivityIndicator activityIndecator = new ActivityIndicator();
activityIndecator.Color = Color.White;
activityIndecator.HorizontalOptions = LayoutOptions.Center;
activityIndecator.VerticalOptions = LayoutOptions.Center;
blueBar.Children.Remove(activityIndecator);
谢谢。
答案 2 :(得分:0)
感谢您帮助我们......
我终于找到了我的问题的答案......
以下是我的工作代码(在所有三个平台上)。
XAML:
<StackLayout x:Name="blueBar" Padding="0,0,0,0" Orientation="Vertical" VerticalOptions="FillAndExpand" >
<ActivityIndicator x:Name="loading" IsRunning="true"></ActivityIndicator>
</StackLayout>
CS:
somebtn.Clicked += async(sender,e) => {
loading.IsVisible = true;
//some await functions like api call or something
loading.IsVisible = false;
}
实际问题是。,之前的InitializeComponent()没有分配指标。所以当我第一次点击任何一个按钮时,指示符显示在布局的左边。
但是,现在指标由InitializeComponent()初始化,因此指标显示在第一次点击的中间......
Note : This problem only occured on windowsphone only not on ios and android projects.
Now the updated code works well and good on all the three platforms.