有没有办法在Android中从Xamarin.Forms-Portable(xaml)中删除导航栏?
我想删除"小于号"('<')和显示在Xamarin.Forms xaml的内容页上方的应用程序图标。
您可以使用Xamarin从Xaml中删除导航栏。使用以下代码形成。
NavigationPage.SetHasNavigationBar (this, false);
其中this
代表当前页面/表单实例。
希望这能有所帮助!
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-自定义导航渲染器cs
NavigationPage.SetHasBackButton(this, false);
实现这一点的最简单方法是在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>
从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>