Xamarin時代は、MainPageクラスでOnAppearing関数をオーバーライドして、
await DisplayAlert("","初回起動時のダイアログ", "OK");
と出せば良かったんだけど、MAUIだとダイアログは出ないし、後続の処理は実行されなかった。
どうもスプラッシュ画像を出してる最中に、ここの処理が呼ばれてしまい、画面の準備ができていないからか、処理が止まってしまうもよう。
Application.Current.MainPage.DisplayAlertを使えば良いらしいという掲示板もあった。
けど、Debug版では動くようになったけど、Release版では相変わらず処理が止まってしまう。
OnSizeAllocatedまで走れば問題なさそうなので、フラグで1回だけ表示するしかないかなぁ?
public partial class MainPage : ContentPage
{
private bool isViewDialog = false;
protected override void OnAppearing()
{
base.OnAppearing();
// ダイアログを出したい条件だったらフラグを立てる
isViewDialog = true;
}
protected async override void OnSizeAllocated(double width, double height)
{
if (isViewDialog)
{
// 先にフラグを落としておかないと、ダイアログを消す前に回転すると重複して出ちゃう
isViewLogin = false;
await DisplayAlert("", "初回起動時のダイアログ", "OK");
}
}
}
他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。