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);
}