如何删除 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
。
我们只能通过为NavigationPage
为Android
创建一个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 中滚动时折叠(隐藏或向上滑动)导航栏(标题栏)?
Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏