14

我不想在 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,则不会显示底栏。

没有找到其他方法来删除它!但它解决了我的问题。

4

4 回答 4

30

TabBarIsVisible是 的附加属性Shell您应该将页面作为第一个参数传递SetTabBarIsVisible给 shell,告诉 shell 隐藏它的标签栏。像这样使用它:

public AppShell()
{
    InitializeComponent();

    Shell.SetTabBarIsVisible(this, false);
}

您也可以将它放在不需要标签栏的任何页面上。

于 2019-06-26T06:30:33.947 回答
8

就我而言,我需要从子页面中删除标签栏,然后: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/>
于 2021-02-24T19:38:59.320 回答
6

对不起,没有足够的代表。评论。

你在哪个班上Shell.SetTabBarIsVisible(Shell.Current, false);

如果将它放在构造函数之后,它是否为空ShellCurrent

2019 年 6 月 30 日编辑:

我在 Shell 中测试了一些东西。这是该项目的链接:https ://github.com/JesperBaltzersen/ShellTest 在类Content1.Xaml.cs中有一个按钮处理程序可以切换标签栏:

    public bool NavVisible { get; set; }

    void OnButtonTapped(object sender, EventArgs args)
    {
        NavVisible = !NavVisible;
        Shell.SetNavBarIsVisible(this, NavVisible);
    }

希望能帮助到你。

于 2019-06-25T22:01:43.140 回答
3

另一种方法:

<Shell 
X:Class="..............:
xmlns:sd="..................."
Shell.IsTabBarVisible="False">

</Shell>
于 2021-01-18T08:59:49.753 回答