我不会在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,则不会显示底部栏。
找不到其他方法将其删除! 但这解决了我的问题。
答案 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);
的哪个班上学习?
如果将Shell
或Current
放在构造函数之后,它是否为空?
编辑30/6/2019:
我已经在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);
}
希望有帮助。
答案 3 :(得分:1)
clazz
是TabBarIsVisible
中的attached property。您应该将页面作为Shell
中的第一个参数进行传递,以告诉Shell隐藏其选项卡栏。像这样使用它:
SetTabBarIsVisible
您也可以将其放置在不需要标签栏的任何页面上。