如何删除 Xamarin.Forms 导航栏?

Posted

技术标签:

【中文标题】如何删除 Xamarin.Forms 导航栏?【英文标题】:How to remove the Xamarin.Forms Navigation Bar? 【发布时间】:2014-11-23 19:05:58 【问题描述】:

有没有办法从 Xamarin.Forms - android 中的便携式 (xaml) 中删除导航栏?

我想删除 Xamarin.Forms xaml 内容页面上方显示的“小于号”('

【问题讨论】:

NavigationPage.HasNavigationBar="False" 在 XAML 中与 ContentPage 标记内联。 【参考方案1】:

您可以使用以下代码使用 Xamarin.Forms 从 Xaml 中删除导航栏。

NavigationPage.SetHasNavigationBar (this, false);

this 代表当前页面/表单实例。

希望这会有所帮助!

【讨论】:

【参考方案2】:

NavigationPage.SetHasNavigationBar(this, false);

上面提到的不是很好的解决方案。

通过使用此代码,它会禁用页面中的NavigationBar

我们只能通过为NavigationPageAndroid 创建一个NavigationRenderer 来实现真正的解决方案。

void RemoveAppIconFromActionBar()

    var actionBar = ((Activity)Context).ActionBar;
    actionBar.SetIcon (new ColorDrawable (Color.Transparent.ToAndroid ()));

完整代码请参考 Github:https://gist.github.com/Vaikesh/f86d1968c8166519f102#file-customnavigationrenderer-cs

【讨论】:

链接失效了,如何更改ActionBar的图标?【参考方案3】:

它被称为操作栏中的后退按钮。您可以使用删除它

NavigationPage.SetHasBackButton(this, false)

【讨论】:

【参考方案4】:

实现此目的的最简单方法是在您的 ContentPage 中添加 NavigationPage.HasNavigationBar = "false"

 <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="SterlingSwitch.Pages.Page1"
             NavigationPage.HasNavigationBar="False">
    <ContentPage.Content>
        <StackLayout>
            <Label Text="Welcome to Xamarin.Forms!"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

【讨论】:

【参考方案5】:

从 xml 页面实现此目的的最佳方法

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="ICLDC.Digital.General.Pages.AboutApp.AboutApplication"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
xmlns:local="clr-namespace:ICLDC.Digital.General.Pages.Generic"
xmlns:translate="clr-namespace:ICLDC.Digital.General.Helpers"
ios:Page.UseSafeArea="True"
NavigationPage.HasNavigationBar="False">
<ContentPage.Content>
    <StackLayout
        BackgroundColor="White"
        HorizontalOptions="FillAndExpand"
        Spacing="0"
        VerticalOptions="FillAndExpand"/>   
</ContentPage.Content>
</ContentPage>

【讨论】:

您能解释一下为什么您的解决方案可以解决问题吗?有其他解决方案中提到的 HasNavigationBar='false'

以上是关于如何删除 Xamarin.Forms 导航栏?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms Shell 是不是有删除导航栏但保留汉堡图标的方法?

Xamarin.Forms Android 底部导航栏

如何在 Xamarin Forms 中滚动时折叠(隐藏或向上滑动)导航栏(标题栏)?

Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏

Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏啦

适用于 UWP 的 Xamarin Forms 顶部导航栏