Xamarin形成android平板电脑masterdetailpage问题

时间:2018-08-30 08:44:23

标签: xamarin xamarin.forms xamarin.android master-detail

我刚刚开始在android平板电脑上测试我的应用,并且发现了一个奇怪的错误: 我只想在打开主页时才启用母版页。 所以我创建了Custom NavigationPage并覆盖了方法:

/// <summary>
    /// Отключение бокового меню при добавлении на главный экран новых страниц
    /// </summary>
    /// <param name="child"></param>
    protected override void OnChildAdded(Element child)
    {
        base.OnChildAdded(child);
        if (this.Navigation.NavigationStack.Count > 1)
            App.detailPage.IsGestureEnabled = false;
    }

    /// <summary>
    /// Включение бокового меню при наличии только одной страницы на главном экране
    /// </summary>
    /// <param name="child"></param>
    protected override void OnChildRemoved(Element child)
    {
        base.OnChildRemoved(child);
        if (this.Navigation.NavigationStack.Count < 2)
            App.detailPage.IsGestureEnabled = true;
    }

这是我的景观主页:

enter image description here

当我将某些页面推送到我的NavigationPage时,母版页面消失:

enter image description here

然后,当我返回主页时,该母版页仍然不可用:

enter image description here

至少我需要在我的MainPage上显示我的MasterPage,如果有人告诉我如何将左边的Masterpage隐藏起来并以滑动手势(例如在手机上)使用它,那将是一个完美的选择。预先感谢。

1 个答案:

答案 0 :(得分:1)

顺便说一句,我已经找到了解决问题的答案:) 现在,我最终在MasterPage中添加了Tablet习惯用法的行为。 构造函数的代码:

public MasterDetailPage1()
    {
        InitializeComponent();
        /// Some coding
        if (Device.Idiom == TargetIdiom.Tablet)
            MasterBehavior = MasterBehavior.Popover;
        /// Some coding
    }

希望对某人有帮助。