在Xamarin Forms Shell中隐藏TabBar

时间:2019-06-25 07:33:15

标签: xamarin xamarin.forms xamarin.forms.shell

我不会在Xamarin Forms Shell 4.0.0.497661项目中隐藏TabBar。

我尝试使用:

Shell.SetTabBarIsVisible(Shell.Current, false);

页面加载和绘制后,但没有效果。

如果在 InitializeComponent(); 之后将.cs构造函数放在代码后面,则将引发空引用异常,但这对我来说不是问题。

在启动时或启动后如何隐藏TabBar?

编辑:

最后,我没办法隐藏底栏... 当FlyoutItem包含在命令行管理程序中时,将显示底部栏,例如:

<FlyoutItem Route="animals"
            Title="Animals"
            FlyoutDisplayOptions="AsMultipleItems">

    <ShellContent Route="cats"
                Title="... />

如果我删除FlyoutItem,则不会显示底部栏。

找不到其他方法将其删除! 但这解决了我的问题。

4 个答案:

答案 0 :(得分:5)

就我而言,我需要从子页面中删除标签栏,然后: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/>

答案 1 :(得分:3)

另一种方法:

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

</Shell>

答案 2 :(得分:1)

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

您在Shell.SetTabBarIsVisible(Shell.Current, false);的哪个班上学习?

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

编辑30/6/2019:

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

    public bool NavVisible { get; set; }

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

希望有帮助。

答案 3 :(得分:1)

clazzTabBarIsVisible中的attached property。您应该将页面作为Shell中的第一个参数进行传递,以告诉Shell隐藏其选项卡栏。像这样使用它:

SetTabBarIsVisible

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