Flyout Page. сохранить состояние бокового меню при повороте экрана. xamarim forms

Есть flyout Page. При повороте экрана с открытым боковым меню само меню закрывается. Хотелось бы, чтобы оно оставалось открытым. На событие IsPresentedChanged подписался. Могу состояние бокового меню отследить. Я так понимаю, нужно поиграть с OnSizeAllocated, но все мои попытки успеха не дали. Прошу совета.

'''

public class MainPageCS : FlyoutPage
{
    MainPage _mainPage;
    private bool _isShowing;
    public MainPageCS()
    {
       _mainPage = new MainPage();

        Flyout = new SettingsFlyoutPage(this);
        
        Detail = new NavigationPage(_mainPage);

        IsPresentedChanged += SetIsPresented;
        
    }
    private void SetIsPresented(object sender, EventArgs e)
    {
        _isShowing = IsPresented;
       
    }
    
    protected override void OnSizeAllocated(double width, double height)
    {
        base.OnSizeAllocated(width, height);
       
    }
    
    public void OnResumeFlyout()
    {
        _mainPage.OnResume();
    }

}

'''


Ответы (1 шт):

Автор решения: Павел Сухарев

Да, сделать это возможно вот таким образом:

public MainPageCS()
{
   
    _mainPage = new MainPage();

    Flyout = new SettingsFlyoutPage(this);
    
    Detail = new NavigationPage(_mainPage);

    IsPresentedChanged += OnPresentedChanged;
    
}

private void OnPresentedChanged(object sender, EventArgs e)
{
    if(sideMenuInstance != null)
    {
        if (!IsPresented && sideMenuInstance.Instance && this.Height != 
                                                 sideMenuInstance.Height)
        {
            IsPresented = true;
        }
    }
    sideMenuInstance = new SideMenuInstance(IsPresented, this.Height);
}
→ Ссылка