我在实现一个像在加载页面时显示 ActivityIndicator 这样简单的功能时遇到了一些麻烦,事实证明这非常困难。
这是我在 App.xaml.cs 上使用的代码:
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new LoginPage());
}
}
这是我的登录页面
public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
btnLogin.Clicked += BtnLogin_Clicked;
}
protected async void BtnLogin_Clicked(object sender, EventArgs e)
{
loadingView.IsVisible = true;
activityIndicator.IsRunning = true;
await Navigation.PushAsync(new SchedulePage());
loadingView.IsVisible = false;
activityIndicator.IsRunning = false;
}
}
在不深入细节的情况下,loadingView 是我在 xaml 文件中的一个视图,其中包含我的 ActivityIndicator。我的主要问题是,当我调用 Navigation.PushAsync() 时,ActivityIndicator 的动画会停止。根据我所读到的,这是因为这两个操作都发生在主线程上,所以一个会中断另一个。
我需要显示指示器的原因是因为我的 SchedulePage 需要大量时间来呈现,因为它有一个 XLabs 日历控件。
你将如何实施这样的事情?