ページの読み込み中に 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 は、ActivityIndicator を格納する xaml ファイルのビューです。ここでの主な問題は、Navigation.PushAsync() を呼び出すと、ActivityIndicator のアニメーションが停止することです。私が読んだことによると、これは両方の操作がメインスレッドで発生するために発生するため、一方が他方に割り込みます。
インジケーターを表示する必要があるのは、私の SchedulePage には XLabs カレンダー コントロールがあるため、表示に時間がかかるためです。
このようなものを実装するにはどうすればよいでしょうか。