Скрыть TabBar в оболочке Xamarin Forms

Я не хочу скрывать 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, нижняя панель не будет отображаться.

Другого способа удалить его не нашел! Но это решает мою проблему.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
14
0
8 493
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Извините, недостаточно репутации. комментировать.

В каком классе ты учишься 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);
    }

Надеюсь, поможет.

В AppShell, но, может быть, у меня проблемы с версией Nuget или что-то в этом роде. Я решил удалить FlyoutItem и использовать MenuItem в оболочке.

Duefectu 27.06.2019 18:20
Ответ принят как подходящий

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/>

Другие вопросы по теме