Я не хочу скрывать TabBar в проекте Xamarin Forms Shell 4.0.0.497661.
Я пытаюсь использовать:
Shell.SetTabBarIsVisible(Shell.Current, false);
После того, как страница загрузилась и отрисовалась, но это не имеет никакого эффекта.
Если я добавлю конструктор codebehind .cs после ИнициализироватьКомпонент();, будет запущено исключение нулевой ссылки, но для меня это не проблема.
Как я могу скрыть TabBar при запуске или после запуска?
Обновлено:
Наконец-то у меня нет возможности скрыть нижнюю панель... Нижняя панель появляется, когда FlyoutItem включен в оболочку, например:
<FlyoutItem Route = "animals"
Title = "Animals"
FlyoutDisplayOptions = "AsMultipleItems">
<ShellContent Route = "cats"
Title = "... />
Если я удалю FlyoutItem, нижняя панель не будет отображаться.
Другого способа удалить его не нашел! Но это решает мою проблему.





Извините, недостаточно репутации. комментировать.
В каком классе ты учишься Shell.SetTabBarIsVisible(Shell.Current, false);?
Является ли это Shell или Current нулевым, если вы поместите его после конструктора?
Редактировать 30.06.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);
}
Надеюсь, поможет.
TabBarIsVisible является прикрепленное имуществоShell. Вы должны передать страницу в качестве первого параметра в SetTabBarIsVisible, чтобы сообщить оболочке, скрывающей панель вкладок. Используйте это как:
public AppShell()
{
InitializeComponent();
Shell.SetTabBarIsVisible(this, false);
}
Вы также можете разместить его на любой странице, на которой вам не нужна панель вкладок.
Другой подход:
<Shell
X:Class = "..............:
xmlns:sd = "..................."
Shell.IsTabBarVisible = "False">
</Shell>
В моем случае мне нужно удалить вкладку с дочерней страницы, тогда: Shell.TabBarIsVisible="Ложь"
<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/>
В AppShell, но, может быть, у меня проблемы с версией Nuget или что-то в этом роде. Я решил удалить FlyoutItem и использовать MenuItem в оболочке.