c# - Xamarin Forms 主详细信息页面主页隐藏导航栏

标签 c# xamarin xamarin.forms master-detail

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

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

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

我也直接在 XAML 中尝试过类似的逻辑,但它永远不会隐藏。如果我首先将 MainPage 设置到另一个页面,然后向前导航到主从页面,导航栏会正确隐藏。

有什么想法/想法吗?

最佳答案

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

关于c# - Xamarin Forms 主详细信息页面主页隐藏导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40873545/

相关文章:

c# - 从 iPhone native 应用程序使用 Xamarin 库

listview - 动态显示/隐藏 Xamarin.Forms.ListView 的页眉或页脚

azure - 如果从另一台计算机构建,UWP 推送通知将停止工作

c# - 如何使用selenium webdriver在c#中以私有(private)模式启动IE

c# - (重复) 'public int x;' 和 'public int x { get; 之间的区别放; }

c# - 从 C# 使用时 F# 记录类型的相等性

c# - 删除自托管 Web Api 响应中的服务器 header

c# - 我如何控制我的图像并在我的 ListView 中使用它创建动画?

c# - 将 MasterDetailPage 中的导航与 Autofac 和 Xamarin.Forms 一起使用

android - Android 如何知道应用程序针对哪个 API?