Xamarin как убрать action bar
Перейти к содержимому

Xamarin как убрать action bar

  • автор:

Xamarin удалить заголовок приложения

Я борюсь с самой глупой вещью (я думаю, я просто не привык к дизайну Xamarin).

Как мне удалить заголовок моего приложения? Он продолжает отображаться, но не находится в моем источнике макета.

Я хочу удалить всю эту часть, но не могу понять, как.
В C# Winforms или WPF я бы выбрал все окно или экран, а затем получил доступ к свойствам основного окна, но в этом случае я могу выбрать только те элементы управления, которые я добавил (кнопки и метки), а не весь экран или заголовок.

enter image description here

Поделиться Источник 09 декабря 2013 в 21:03

14 ответов

Напишите это в методе OnCreate сразу после SetContentView :

ActionBar.Hide(); 

Поделиться 09 января 2014 в 15:34

Насколько я помню, в вашем классе Activity вам нужно удалить метку атрибута, чтобы у него не было заголовка. У меня сейчас нет Xamarin, но я уверен, что над именем класса есть атрибут, который устанавливает заголовок.

ОБНОВЛЕНИЕ от phadaphunk:

Удаление android:theme=»@android:style/Theme.NoTitleBar» из файла манифеста полностью удалит заголовок

UPDATE

NavigationPage.SetHasNavigationBar(this, false); 

В то время, когда я написал ответ, лучшие ответы, которые сейчас предоставлены, доступны для фреймворка. Исправьте меня, если я не прав, но не помню, что эти API были доступны на момент написания этого письма.

Поделиться 09 декабря 2013 в 21:07

Вариант, который мне кажется самым простым, это отредактировать атрибут Activity и использовать стиль по умолчанию (а не пользовательский, как предложила Mina Fawzy):

[Activity(Theme = "@android:style/Theme.DeviceDefault.NoActionBar", . )] 

Если вы хотите удалить строку состояния, то используйте

[Activity(Theme = "@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen", . )] 

Поделиться 16 февраля 2017 в 11:17

Не изменяйте его в теме Title, он примет предыдущую версию пользовательского интерфейса. После OnCreate

 protected override void OnCreate(Bundle bundle) < base.OnCreate(bundle); // Window.RequestFeature(WindowFeatures.NoTitle); //This will Hide the title Bar >

В качестве альтернативы, вы можете добавить

 NavigationPage.SetHasNavigationBar(this, false); 

в свой конструктор

Поделиться 02 мая 2015 в 16:16

Вы можете достичь этого, создав пользовательский стиль:

  

И вот как вы можете использовать его в своей активности:

 [Activity(Label = "ActivityLabel", Theme = "@style/AppTheme")] 

Поделиться 17 ноября 2016 в 10:08

NavigationPage.SetHasNavigationBar(this, false); 

Это лучший метод.

Поделиться 29 января 2015 в 09:51

В моем случае мне не нужен никакой Title, я просто хочу ActionBar с некоторыми вкладками, поэтому я написал:

RequestWindowFeature(Android.Views.WindowFeatures.ActionBar); 

И после SetContentView:

ActionBar.Title = ""; 

Поделиться 07 февраля 2018 в 13:23

Чтобы удалить строку заголовка, я просто изменил файл "Style.xml":

Добавьте эту строку в другие элементы ниже:

true 

Это удалит строку заголовка из "AppTheme", вы также можете создать пользовательскую тему рядом с ней и установить ее в своей активности.

Поделиться 05 октября 2021 в 11:26

Просто добавьте это NavigationPage.HasNavigationBar="False" under в вашу ContentPage

Это работает в последних версиях

Поделиться 27 июня 2022 в 22:06

Это сработало для me: SupportActionBar.SetDisplayShowTitleEnabled(false);

Поделиться 23 июля 2018 в 10:28

[2021] Вы можете установить тему следующим образом:

[Activity(Label = "@string/app_name", Theme = "@style/Theme.AppCompat.Light.NoActionBar", MainLauncher = true)] 

Поделиться 21 ноября 2021 в 20:27

Просто добавьте это в стиль приложения (Resources/values/styles.xml):

false true 

Должно выглядеть так:

    

Поделиться 15 января 2022 в 21:24

SupportActionBar.Hide(); сработало, чтобы скрыть всю строку заголовка для меня.

Поделиться 13 августа 2020 в 18:12

Много ожидаемых ответов!

Однако, на всякий случай, если это все еще не работает, предположим, вы устанавливаете пользовательские представления. Попробуйте ActionBar.Title = null;

Action Bar. Hide Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Скройте панель действий, если она отображается в данный момент.

[Android.Runtime.Register("hide", "()V", "GetHideHandler")] public abstract void Hide ();
[] abstract member Hide : unit -> unit

Комментарии

Скройте панель действий, если она отображается в данный момент. Если окно, в котором размещена панель действий, не имеет функции Window#FEATURE_ACTION_BAR_OVERLAY , оно изменит размер содержимого приложения в соответствии с новым доступным пространством.

Вместо того чтобы вызывать эту функцию напрямую, можно также вызвать actionBar с помощью функции наложения, чтобы скрыть через View#SYSTEM_UI_FLAG_FULLSCREEN View.SYSTEM_UI_FLAG_FULLSCREEN . Скрытие ActionBar с помощью этого системного флага пользовательского интерфейса позволяет более легко скрыть его в сочетании с другими украшениями экрана.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Замена панели действий

Одним из наиболее распространенных способов использования Toolbar является замена панели действий по умолчанию на настраиваемую Toolbar (при создании нового проекта Android используется панель действий по умолчанию). Toolbar Так как предоставляет возможность добавлять фирменные логотипы, заголовки, пункты меню, кнопки навигации и даже пользовательские представления в раздел панели приложения пользовательского интерфейса действия, он предлагает значительное обновление по сравнению с панелью действий по умолчанию.

Замена панели действий приложения по умолчанию на : Toolbar

  1. Создайте новую пользовательскую тему и измените свойства приложения, чтобы оно использовало эту новую тему.
  2. windowActionBar Отключите атрибут в пользовательской теме и включите windowNoTitle атрибут .
  3. Определите макет для Toolbar .
  4. Toolbar Включите макет в файл макета Действия Main.axml.
  5. Добавьте код в метод Действия OnCreate , чтобы найти Toolbar и вызвать SetActionBar для установки ToolBar в качестве панели действий.

Этот процесс подробно описан в следующих разделах. Создается простое приложение, а его панель действий заменяется настроенным Toolbar .

Запуск проекта приложения

Создайте проект Android с именем ToolbarFun (дополнительные сведения о создании проекта Android см. в разделе Hello, Android ). После создания этого проекта задайте для целевого и минимального уровней API Android значение Android 5.0 (уровень API 21 — Lollipop) или более поздней версии. Дополнительные сведения о настройке уровней версий Android см. в разделе Общие сведения об уровнях API Android. При сборке и запуске приложения отображается панель действий по умолчанию, как показано на снимке экрана:

Снимок экрана: панель действий по умолчанию

Создание пользовательской темы

Откройте каталог Resources/values и создайте файл с именемstyles.xml. Замените его содержимое следующим XML-кодом:

     

Этот XML-код определяет новую пользовательскую тему MyTheme , основанную на теме Theme.Material.Light.DarkActionBar в Lollipop. Атрибут windowNoTitle имеет значение , true чтобы скрыть строку заголовка:

true 

Чтобы отобразить пользовательскую панель инструментов, необходимо отключить значение по умолчанию ActionBar :

false 

Для цвета фона панели инструментов используется оливково-зеленый colorPrimary параметр:

#5A8622 

Применение пользовательской темы

Измените свойства/AndroidManifest.xml и добавьте следующий android:theme атрибут в элемент , чтобы приложение использовало настраиваемую MyTheme тему:

Дополнительные сведения о применении пользовательской темы к приложению см. в разделе Использование пользовательских тем.

Определение макета панели инструментов

В каталоге Resources/layout создайте файл с именемtoolbar.xml. Замените его содержимое следующим XML-кодом:

Этот XML-код определяет пользовательский Toolbar код, заменяющий панель действий по умолчанию. Минимальная высота Toolbar задается в размере заменяемой панели действий:

android:minHeight="?android:attr/actionBarSize" 

Цвет фона Toolbar задается в оливково-зеленый цвет, определенный ранее в styles.xml:

android:background="?android:attr/colorPrimary" 

Начиная с Lollipop атрибут android:theme можно использовать для стиля отдельного представления. Темы, представленные ThemeOverlay.Material в Lollipop, позволяют наложить темы по умолчанию Theme.Material , перезаписав соответствующие атрибуты, чтобы сделать их светлыми или темными. В этом примере использует темную тему, Toolbar чтобы ее содержимое было светлым:

android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar" 

Этот параметр используется для контрастирования элементов меню с более темным цветом фона.

Включение макета панели инструментов

Измените файл макета Resources/layout/Main.axml и замените его содержимое следующим XML-кодом:

Этот макет включает определенный Toolbar в toolbar.xml и использует RelativeLayout , чтобы указать, что Toolbar объект должен быть размещен в верхней части пользовательского интерфейса (над кнопкой).

Поиск и активация панели инструментов

Измените файл MainActivity.cs и добавьте следующую инструкцию using:

using Android.Views; 

Кроме того, добавьте следующие строки кода в конец OnCreate метода :

var toolbar = FindViewById(Resource.Id.toolbar); SetActionBar(toolbar); ActionBar.Title = "My Toolbar"; 

Этот код находит вызовы Toolbar SetActionBar и , чтобы использовать Toolbar характеристики панели действий по умолчанию. Заголовок панели инструментов меняется на Моя панель инструментов. Как показано в этом примере кода, ToolBar на объект можно напрямую ссылаться как на панель действий. Скомпилируйте и запустите это приложение— настраиваемое Toolbar отображается вместо панели действий по умолчанию:

Снимок экрана: настраиваемая панель инструментов с зеленой цветовой схемой

Обратите внимание, что Toolbar стиль имеет стиль независимо Theme.Material.Light.DarkActionBar от темы, которая применяется к остальной части приложения.

Если при запуске приложения возникает исключение, см. раздел Устранение неполадок ниже.

Добавить пункты меню

В этом разделе меню добавляются в Toolbar . Верхняя правая область зарезервирована ToolBar для пунктов меню. Каждый пункт меню (также называемый элементом действия) может выполнять действие в текущем действии или выполнять действие от имени всего приложения.

Добавление меню в : Toolbar

  1. Добавьте значки меню (при необходимости) в mipmap- папки проекта приложения. Google предоставляет набор бесплатных значков меню на странице Значки материала .
  2. Определите содержимое пунктов меню, добавив новый файл ресурсов меню в разделе Ресурсы или меню.
  3. Реализуйте OnCreateOptionsMenu метод Действия — этот метод раздувает пункты меню.
  4. OnOptionsItemSelected Реализация метода Activity — этот метод выполняет действие при касании пункта меню.

В следующих разделах подробно демонстрируется этот процесс, добавляя пункты меню "Изменить" и "Сохранить " в настраиваемый Toolbar .

Значки меню "Установка"

Продолжая работу с примером ToolbarFun приложения, добавьте значки меню в проект приложения. Скачайте значки панели инструментов, распакуйте и скопируйте содержимое извлеченных папок MIP-карт в папку MIP-карты проекта в разделе ToolbarFun/Resources и включите каждый добавленный файл значков в проект.

Определение ресурса меню

Создайте новый подкаталог меню в разделе Ресурсы. В подкаталоге меню создайте новый файл ресурсов меню с именемtop_menus.xml и замените его содержимое следующим XML-кодом:

Этот XML-код создает три пункта меню:

  • Пункт меню Правка , использующий ic_action_content_create.png значок (карандаш).
  • Пункт меню Сохранить , использующий ic_action_content_save.png значок (дискета).
  • Пункт меню "Настройки" , не имеющий значка.

Атрибутам showAsAction пунктов меню "Изменить" и "Сохранить " задано значение ifRoom . Этот параметр приводит к отображению этих пунктов меню в Toolbar , если для них достаточно места. Для пункта меню "Настройки" задано значение showAsAction never . Это приводит к отображению меню "Настройки" в меню переполнения (три вертикальные точки).

Реализация OnCreateOptionsMenu

Добавьте следующий метод в файл MainActivity.cs:

public override bool OnCreateOptionsMenu(IMenu menu)

Android вызывает OnCreateOptionsMenu метод , чтобы приложение я указать ресурс меню для действия. В этом методе ресурсtop_menus.xml увеличивается до переданного menu . Этот код приводит к отображению новых пунктов меню "Изменить", "Сохранить" и "Параметры" Toolbar в .

Реализация OnOptionsItemSelected

Добавьте следующий метод в файл MainActivity.cs:

public override bool OnOptionsItemSelected(IMenuItem item)

Когда пользователь касается пункта меню, Android вызывает OnOptionsItemSelected метод и передает выбранный пункт меню. В этом примере реализация просто отображает всплывающее уведомление, указывающее, какой пункт меню был коснулся.

Выполните сборку и запустите ToolbarFun , чтобы увидеть новые пункты меню на панели инструментов. Теперь Toolbar отображается три значка меню, как показано на этом снимке экрана:

Схема, иллюстрирующая расположения пунктов меню

Когда пользователь касается пункта меню Правка , отображается всплывающее уведомление, указывающее, что OnOptionsItemSelected метод был вызван:

Снимок экрана: всплывающее уведомление, отображаемое при нажатии кнопки Изменить элемент

Когда пользователь касается меню переполнения, отображается пункт меню Параметры . Как правило, в меню переполнения следует помещать менее распространенные действия. В этом примере используется меню переполнения для параметров, так как оно используется не так часто, как Изменить и Сохранить:

Снимок экрана: пункт меню

Дополнительные сведения о меню Android см. в разделе Меню разработчика Android.

Устранение неполадок

Следующие советы помогут устранить проблемы, которые могут возникнуть при замене панели действий панелью инструментов.

Действие уже имеет панель действий

Если приложение неправильно настроено для использования пользовательской темы, как описано в разделе Применение пользовательской темы, при запуске приложения может возникнуть следующее исключение:

Ошибка, которая может возникнуть, если пользовательская тема не используется

Кроме того, может появиться следующее сообщение об ошибке: Java.Lang.IllegalStateException: Это действие уже имеет панель действий, предоставленную декором окна.

Чтобы исправить эту ошибку, убедитесь, что android:theme атрибут для настраиваемой темы добавлен в (в разделе Свойства/AndroidManifest.xml), как описано выше в разделе Применение пользовательской темы. Кроме того, эта ошибка может быть вызвана, если Toolbar макет или пользовательская тема настроены неправильно.

Связанные ссылки

  • Панель инструментов Lollipop (пример)
  • Панель инструментов AppCompat (пример)

Убрать статус бар и отключить кнопку назад

Author24 — интернет-сервис помощи студентам

Добрый день!
Если кто знает, подскажите, как можно развернуть приложение на полный экран или просто убрать статус бар.
А так же отключить кнопку назад.
Даже примерно не могу понять в какую сторону копать.

Добавлено через 7 минут
нашел в свойствах проекта объявление манифеста и там EXPAND_STATUS_BAR
но с этим явно надо делать что-то еще

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Убрать статус бар
Добрый день. Как я понимаю есть action bar и status bar. В моем приложении я хочу убрать.

Убрать статус бар
Уберите меню, там где: Файл, Элементы, Действия. Только чтобы после этого работоспособность.

Доступ к статус бар
Доброго времени суток! Я человек новый в программировании под iOS, но возник у меня такой.

Собственный статус-бар
Народ, знает кто как создать собственный статус бар? У меня есть приложение, развернутое на весь.

Регистрация: 03.04.2013
Сообщений: 238

1 2 3 4
protected override bool OnBackButtonPressed() { return true; }

Это касательно второго пункта. С первым пока не сталкивался, как разберешься напиши, может пригодиться)

Регистрация: 27.04.2015
Сообщений: 509

АндрюхаРостовск, не пойму как этот метод использовать.
По по поводу первого вопроса частично решил.
В MainActivity.cs добавить

Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen);

однако есть два момента.
1. При запуске приложения и до первого тапа статус бар проглядывает;
2. При открытии нового окна так же проглядывает полоска показывающая кусок предыдущего окна.

Добавлено через 1 минуту
Хотел приложить скриншоты, но что-то не грузятся

Добавлено через 6 минут
не распространяется на IOS, я его вообще не использую в проекте.

Добавлено через 1 час 13 минут
Вроде решил.
1- Лечится установкой цвета backgrounda (я всюду использую Grid);
2- проблема появляется только у модальных окон, заменил на бычные и стало хорошо.

Возможно оба решения являются костылями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *