在 Xamarin Forms 中隐藏 TabBar Shell
Hide TabBar in Xamarin Forms Shell
我不想在 Xamarin Forms Shell 4.0.0.497661 项目中隐藏 TabBar。
我尝试使用:
Shell.SetTabBarIsVisible(Shell.Current, false);
页面加载绘制后,没有任何效果
如果我在 InitializeComponent(); 之后放入代码隐藏 .cs 构造函数,则会启动空引用异常,但这对我来说不是问题。
如何在启动时或启动后隐藏TabBar?
编辑:
终于没办法隐藏底栏了...
当 FlyoutItem 包含在 Shell 上时,底栏出现,例如:
<FlyoutItem Route="animals"
Title="Animals"
FlyoutDisplayOptions="AsMultipleItems">
<ShellContent Route="cats"
Title="... />
如果删除 FlyoutItem,则不会显示底栏。
找不到其他方法删除它!
但它解决了我的问题。
抱歉,没有足够的代表。评论。
你在哪个 class Shell.SetTabBarIsVisible(Shell.Current, false);
?
Shell
或 Current
放在构造函数之后是否为 null?
编辑 2019 年 6 月 30 日:
我在 Shell 中测试了一些东西。
这是项目的 link:https://github.com/JesperBaltzersen/ShellTest
在 class Content1.Xaml.cs
中有一个切换标签栏的按钮处理程序:
public bool NavVisible { get; set; }
void OnButtonTapped(object sender, EventArgs args)
{
NavVisible = !NavVisible;
Shell.SetNavBarIsVisible(this, NavVisible);
}
希望对您有所帮助。
TabBarIsVisible
是 Shell
的 attached property。您应该将页面作为 SetTabBarIsVisible
中的第一个参数传递,以告知 shell 隐藏其标签栏。像这样使用它:
public AppShell()
{
InitializeComponent();
Shell.SetTabBarIsVisible(this, false);
}
你也可以把它放在任何你不需要标签栏的页面上。
另一种方法:
<Shell
X:Class="..............:
xmlns:sd="..................."
Shell.IsTabBarVisible="False">
</Shell>
在我的例子中,我需要从子页面中删除标签栏,然后:Shell.TabBarIsVisible="False"
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Title="Child page from shell"
Shell.TabBarIsVisible="False"
x:Class="AppMvvm.Views.User.LoginPage/>
我不想在 Xamarin Forms Shell 4.0.0.497661 项目中隐藏 TabBar。
我尝试使用:
Shell.SetTabBarIsVisible(Shell.Current, false);
页面加载绘制后,没有任何效果
如果我在 InitializeComponent(); 之后放入代码隐藏 .cs 构造函数,则会启动空引用异常,但这对我来说不是问题。
如何在启动时或启动后隐藏TabBar?
编辑:
终于没办法隐藏底栏了... 当 FlyoutItem 包含在 Shell 上时,底栏出现,例如:
<FlyoutItem Route="animals"
Title="Animals"
FlyoutDisplayOptions="AsMultipleItems">
<ShellContent Route="cats"
Title="... />
如果删除 FlyoutItem,则不会显示底栏。
找不到其他方法删除它! 但它解决了我的问题。
抱歉,没有足够的代表。评论。
你在哪个 class Shell.SetTabBarIsVisible(Shell.Current, false);
?
Shell
或 Current
放在构造函数之后是否为 null?
编辑 2019 年 6 月 30 日:
我在 Shell 中测试了一些东西。
这是项目的 link:https://github.com/JesperBaltzersen/ShellTest
在 class Content1.Xaml.cs
中有一个切换标签栏的按钮处理程序:
public bool NavVisible { get; set; }
void OnButtonTapped(object sender, EventArgs args)
{
NavVisible = !NavVisible;
Shell.SetNavBarIsVisible(this, NavVisible);
}
希望对您有所帮助。
TabBarIsVisible
是 Shell
的 attached property。您应该将页面作为 SetTabBarIsVisible
中的第一个参数传递,以告知 shell 隐藏其标签栏。像这样使用它:
public AppShell()
{
InitializeComponent();
Shell.SetTabBarIsVisible(this, false);
}
你也可以把它放在任何你不需要标签栏的页面上。
另一种方法:
<Shell
X:Class="..............:
xmlns:sd="..................."
Shell.IsTabBarVisible="False">
</Shell>
在我的例子中,我需要从子页面中删除标签栏,然后:Shell.TabBarIsVisible="False"
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Title="Child page from shell"
Shell.TabBarIsVisible="False"
x:Class="AppMvvm.Views.User.LoginPage/>