.NET MAUIで起動時にダイアログを出す

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関連要素をまとめていますので、よければ一覧記事もご覧ください。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)