如何移除 Xamarin.Forms 导航栏?

18

有没有办法从 Xamarin.Forms - Portable (xaml) 在 Android 中移除导航栏?

我想要移除 Xamarin.Forms xaml 中内容页上方出现的“小于号”('<')和应用程序图标。


在XAML中,与ContentPage标签同行的是NavigationPage.HasNavigationBar="False"。 - Michael Yuwono
5个回答

44
您可以使用下面的代码在 Xamarin.Forms 中从 Xaml 删除导航栏。
NavigationPage.SetHasNavigationBar (this, false);

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

希望这可以帮助到您!


4

NavigationPage.SetHasNavigationBar(this, false);

上述方法并不是一个好的解决方案。

使用这段代码可以禁用页面中的NavigationBar

我们只有通过为NavigationPage创建NavigationRenderer来实现真正的解决方案,适用于Android系统。

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的图标? - Ashish-BeJovial

1

它被称为“返回按钮”,并且可以在操作栏中使用。您可以使用以下方法将其删除:

NavigationPage.SetHasBackButton(this, false);

0

实现这个最简单的方法是在你的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>

0

从 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'。 - slfan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接