【问题标题】:Xamarin Forms Master Detail Page Main Page Hide Navigation BarXamarin 表单主详细信息页面主页隐藏导航栏
【发布时间】:2017-04-13 21:38:07
【问题描述】:

将我的应用程序主页设置为“主-详细信息”页面时,我无法弄清楚如何隐藏导航栏。如果主-详细信息页面不是应用程序的主页,则导航栏会正确隐藏,但无论我做什么,如果它是主页,我都无法隐藏导航栏。

我在母版页的构造函数、详细信息页和两者的重写 OnAppearing 方法中尝试了以下操作,但导航栏从不隐藏。

NavigationPage.SetHasNavigationBar(this, false); NavigationPage.SetHasBackButton(this, false);

我也直接在 XAML 中尝试过类似的逻辑,但它从不隐藏。如果我首先将我的 MainPage 设置为另一个页面,那么只需向前导航到导航栏正确隐藏的主详细信息页面。

有什么想法/想法吗?

【问题讨论】:

    标签: c# xamarin xamarin.forms master-detail


    【解决方案1】:

    对于 android 实现,将以下内容添加到您的 MainActivity.cs:

    global::Xamarin.Forms.Forms.SetTitleBarVisibility(Xamarin.Forms.AndroidTitleBarVisibility.Never);
    

    对于 iOS,该过程需要自定义渲染器,但它确实很基础:

    public class iOSCustomMobilePageRenderer : PageRenderer
    {
        public override void ViewWillAppear(bool animated) {
            base.ViewWillAppear(animated);
    
    
            if (ViewController != null && ViewController.ParentViewController != null && ViewController.ParentViewController.NavigationController != null) {
    
                if (ViewController.ParentViewController.NavigationController.NavigationBar != null)
                    ViewController.ParentViewController.NavigationController.SetNavigationBarHidden(true, false);
            }
        }
    }
    

    【讨论】:

    • 我在 Android 中测试并隐藏状态栏(小时、wifi、图标等的栏)
    猜你喜欢
    • 1970-01-01
    • 2016-09-20
    • 2019-08-23
    • 2017-08-30
    • 2014-09-26
    • 1970-01-01
    • 2017-01-09
    • 2020-01-28
    • 2019-12-09
    相关资源
    最近更新 更多