我有问题。我试图使用ProgressBar,所以我创建了以下代码:
ProgressBar progressBar;
public MyPage()
{
InitializeComponent();
ContentView LoadingView = new ContentView
{
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
BackgroundColor = Color.Transparent
};
progressBar = new ProgressBar
{
ProgressColor = Color.FromHex("#3897F0"),
HorizontalOptions = LayoutOptions.FillAndExpand,
HeightRequest = 30
};
RelativeLoadingLayout.Children.Add(LoadingView,
Constraint.RelativeToParent((parent) =>
{
return (0);
}),
Constraint.RelativeToParent((parent) =>
{
return (0);
}),
Constraint.RelativeToParent((parent) =>
{
return parent.Width;
}), Constraint.RelativeToParent((parent) =>
{
return parent.Height;
}));
LoadingView.Content = progressBar;
MemeProgressBar.Progress = 0.8;
Task.Run(async () => await UpdateProgressBar(0.8, 2000));
MemeProgressBar.Progress = 1;
Task.Run(async () => await UpdateProgressBar(1, 4000));
}
async Task UpdateProgressBar(double Progress, uint time)
{
MemeProgressBar.ProgressTo(Progress, time, Easing.Linear);
}
但是当页面加载时,ProgressBar已满。我创建了一个自定义的空隙,该空隙应设置加载的动画。
我在做什么错?
我可以看到您将进度手动设置为1,因此当然总是为1。不能真正呈现页面,它只是初始化XAML中定义的对象,因此进度条可能在页面呈现之前就完成了更新。
如果完成特定任务后需要执行此代码,请尝试使用ContinueWith()方法,或者只是等待它,您的呼叫,我个人更喜欢异步等待模式