我很难实现像在页面加载时显示ActivityIndicator那样简单的功能,事实证明这非常困难。
这是我在App.xaml.cs上使用的代码:
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new LoginPage());
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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;
}
}
Run Code Online (Sandbox Code Playgroud)
无需赘述,loadingView是我在xaml文件上的视图,该文件包含我的ActivityIndicator。我的主要问题是,当我调用Navigation.PushAsync()时,ActivityIndicator的动画将停止。据我所读,这是因为两个操作都发生在Main线程上,所以一个中断了另一个。
我需要显示该指标的原因是因为我的SchedulePage需要很多时间来呈现,因为它具有XLabs日历控件。
您将如何实现这样的目标?