- Android: как скрыть ActionBar при определенных действиях
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Замена панели действий
- Обзор
- Запуск приложения Project
- Создание пользовательской темы
- Применение пользовательской темы
- Определение макета панели инструментов
- Включить макет панели инструментов
- Поиск и активация панели инструментов
- Добавление пунктов меню
- Значки меню «установить»
- Определение ресурса меню
- Реализация Онкреатеоптионсмену
- Реализация Оноптионситемселектед
- Диагностика
- У действия уже есть панель действий
- Подключаем Toolbar
Android: как скрыть ActionBar при определенных действиях
Я разработал простое демо-приложение с заставкой экрана и некоторые обычные экраны.
У меня есть панель действий наверху, которая содержит логотип. Все это прекрасно выглядит на моем телефоне (Galaxy s1 I9000 V2.3), но когда я тестирую его на Galaxy s2 v4, панель действий появляется также в заставке и на экране карты.
Активность спалса и карты даже не наследуется от ActionBarActivity, так как это возможно и как я могу заставить его уйти?
Определение MapActivity (оно длинное, поэтому я включил только определение):
ОТВЕТЫ
Ответ 1
Примените следующее в своей теме для Activity в AndroidManifest.xml :
Это должно сделать трюк.
Ответ 2
Поскольку вы спрашиваете о том, как спрятаться в определенном упражнении, это то, что вам нужно:
Ответ 3
1. Вернитесь к своему файлу manifest.xml .
2. Find activity tag , для которого вы хотите скрыть свой ActionBar, а затем add ,
Android: тема = «@стиль/Theme.AppCompat.NoActionBar»
Ответ 4
Если вы хотите получить полный экран без действийBar и Title.
Добавьте его в style.xml
и используйте стиль при активности manifest.xml.
Ответ 5
ActionBar обычно существует вдоль Fragments , поэтому из Activity вы можете скрыть его
и из Fragment вы можете сделать это
Ответ 6
Если вы используете Theme.AppCompat.Light, лучшим эквивалентом будет Theme.AppCompat.Light.NoActionBar.
Я обнаружил, что использование Theme.AppCompat.NoTitleBar заставило мой текст кнопки быть невидимым, поэтому я использую Theme.AppCompat.Light.NoActionBar.
Ответ 7
Вы можете использовать режим низкого профиля Смотрите здесь
Просто найдите SYSTEM_UI_FLAG_LOW_PROFILE , который также уменьшает навигационные кнопки, если они присутствуют на экране.
Ответ 8
Это работает для меня! Поместите это в свою деятельность в манифестах
Вы также можете сделать свою собственную тему в файле styles.xml следующим образом:
Надеюсь, это поможет.
Ответ 9
Вышеупомянутые ответы помогут в действии ActionBar. Чтобы добавить к нему, используйте следующий код, если вы используете экран заставки: Используйте это, прежде чем устанавливать представление содержимого:
Просто, чтобы уточнить, вот как вы это делаете:
Это сделает ваш экран полным экраном, т.е. удалит верхнюю панель, где вы увидите сетевую панель, и т.д.
Ответ 10
Примените следующее в своей Теме для Действия в AndroidManifest.xml:
Затем примените следующее в вашем стиле в style.xml
Ответ 11
Это работает в API 27
В файле styles.xml замените код на следующий.
Затем в файлы (например, activity_list.xml), в которых вы хотите иметь панель инструментов, поместите следующий код.
Если у вас есть проблемы, переключитесь на линейную разметку (потому что именно на этом тестируется этот код)
Ответ 12
Начиная с Android 3.0 (уровень API 11), все действия, использующие тему по умолчанию, имеют панель действий в качестве панели приложения. Тем не менее, функции панели приложений постепенно добавляются в родную панель действий в различных версиях Android. В результате нативный ActionBar ведет себя по-разному в зависимости от того, какую версию системы Android может использовать устройство. Напротив, самые последние функции добавляются в версию панели инструментов библиотеки поддержки и доступны на любом устройстве, которое может использовать библиотеку поддержки.
Поэтому одним из вариантов является полное отключение ActionBar (в файле app manifest.xml), а затем добавление панели инструментов на каждую страницу, для которой требуется ActionBar.
(перейдите по ссылке выше для пошагового объяснения)
Источник
Замена панели действий
Обзор
Одно из наиболее распространенных применений Toolbar — Замена панели действий по умолчанию настраиваемой Toolbar (при создании нового проекта Android используется панель действий по умолчанию). Так как Toolbar предоставляет возможность добавлять фирменные логотипы, заголовки, элементы меню, кнопки навигации и даже пользовательские представления в раздел панели приложений пользовательского интерфейса действия, он предлагает значительное обновление по умолчанию на панели действий.
Чтобы заменить панель действий по умолчанию приложения на Toolbar :
Создайте новую пользовательскую тему и измените свойства приложения так, чтобы она использовала эту новую тему.
Отключите windowActionBar атрибут в пользовательской теме и включите windowNoTitle атрибут.
Определите макет для Toolbar .
Включите Toolbar Макет в файл макета Toolbar действия.
Добавьте код в OnCreate метод действия для нахождение Toolbar и вызова SetActionBar для установки в ToolBar качестве панели действий.
В следующих разделах подробно описывается этот процесс. Создается простое приложение, и его панель действий заменяется настроенной Toolbar .
Запуск приложения Project
Создайте проект Android с именем тулбарфун (Дополнительные сведения о создании нового проекта Android см. в разделе Hello, Android ). После создания проекта задайте для целевых и минимальных уровней API Android значение Android 5,0 (уровень API 21-без описания) или более поздней версии. Дополнительные сведения о настройке уровней версии Android см. в разделе Общие сведения об уровнях API Android. При сборке и запуске приложения отображается панель действий по умолчанию, как показано на следующем снимке экрана:
Создание пользовательской темы
Откройте каталог Resources/Values и создайте новый файл с именем styles.xml. Замените его содержимое следующим XML-кодом:
Этот XML-код определяет новую пользовательскую тему под названием мисеме , основанную на теме Theme. материальн. light. даркактионбар в параметре без описания операций. windowNoTitle Атрибут имеет значение, true чтобы скрыть строку заголовка:
Чтобы отобразить пользовательскую панель инструментов, необходимо отключить значение по умолчанию ActionBar :
Параметр «оливковый-зеленый» colorPrimary используется для фонового цвета панели инструментов.
Применение пользовательской темы
Измените Свойства/AndroidManifest.xml и добавьте следующий атрибут в элемент, чтобы приложение использовало MyTheme пользовательскую тему:
Дополнительные сведения о применении пользовательской темы к приложению см. в разделе Использование пользовательских тем.
Определение макета панели инструментов
В каталоге ресурсов или макета создайте новый файл с именем toolbar.xml. Замените его содержимое следующим XML-кодом:
Этот XML-код определяет пользовательский объект Toolbar , который заменяет панель действий по умолчанию. Минимальная высота параметра равна Toolbar размеру заменяемой панели действий:
Цвет фона элемента Toolbar задается в цвете «оливковый-зеленый», определенный ранее в Toolbar :
Начиная с с параметром без описания, android:theme атрибут может использоваться для стиля отдельного представления. ThemeOverlay.Material Темы, появившиеся в интерфейсе без описания операций, позволяют накладывать темы по умолчанию Theme.Material , переписывая соответствующие атрибуты, чтобы сделать их светлыми или темными. В этом примере Toolbar компонент использует темную тему, чтобы ее содержимое было светлым в цвете:
Этот параметр используется, чтобы элементы меню отличались от более темного цвета фона.
Включить макет панели инструментов
Измените файл макета Resources/Layout/Main. axml и замените его содержимое следующим XML-кодом:
Этот макет включает в себя Toolbar определенный в Toolbar и использует, RelativeLayout чтобы указать, что компонент должен Toolbar быть размещен в самом верху пользовательского интерфейса (над кнопкой).
Поиск и активация панели инструментов
Измените MainActivity. CS и добавьте следующую инструкцию using:
Кроме того, добавьте в конец метода следующие строки кода OnCreate :
Этот код находит Toolbar вызовы и SetActionBar , чтобы команда Toolbar предложит характеристики панели действий по умолчанию. Заголовок панели инструментов изменится на панель инструментов. Как показано в этом примере кода, на него ToolBar можно ссылаться непосредственно как на панель действий. Компилировать и запустить это приложение — настроенное значение Toolbar отображается вместо панели действий по умолчанию:
Обратите внимание, что Toolbar стиль определяется независимо от Theme.Material.Light.DarkActionBar темы, которая применяется к оставшейся части приложения.
Если при выполнении приложения возникает исключение, см. раздел Устранение неполадок ниже.
Добавление пунктов меню
В этом разделе меню добавляются в Toolbar . Верхняя правая область ToolBar зарезервирована для пунктов меню — каждый пункт меню (также называемый ToolBar ) может выполнять действия в рамках текущего действия или выполнять действия от имени всего приложения.
Чтобы добавить меню в Toolbar :
Добавьте значки меню (при необходимости) в mipmap- папки проекта приложения. Google предоставляет набор значков свободного меню на странице значков материалов .
Определите содержимое пунктов меню, добавив новый файл ресурсов меню в разделе ресурсы/меню.
Реализуйте OnCreateOptionsMenu метод действия — этот метод расширяет пункты меню.
Реализуйте OnOptionsItemSelected метод действия — этот метод выполняет действие при касании пункта меню.
В следующих разделах подробно описывается этот процесс путем добавления элементов меню Правка и сохранить в настроенные .
Значки меню «установить»
Продолжая работу с ToolbarFun примером приложения, добавьте значки меню в проект приложения. Загрузите значки панели инструментов, распакуйте и скопируйте содержимое извлеченных mipmap- папок в проект mipmap- Folders в тулбарфун/Resources и включите каждый добавленный файл значков в проект.
Определение ресурса меню
Создайте новый подкаталог меню в разделе ресурсы. В подкаталоге меню создайте новый файл ресурсов меню с именем top_menus.xml и замените его содержимое следующим XML-кодом:
Этот XML-код создает три пункта меню:
Пункт меню » Правка «, в котором используется значок (карандаш).
Пункт меню » сохранить «, в котором используется значок (дискета).
Элемент меню настроек , у которого нет значка.
showAsAction Атрибуты пунктов меню showAsAction и сохранить имеют значение — этот параметр приводит к тому, что эти пункты меню будут отображаться в, Toolbar Если для их отображения достаточно места. Элемент меню « настройки» имеет значение never – это приводит к тому, что меню « never отображается в меню переполнения (три вертикальные точки).
Реализация Онкреатеоптионсмену
Добавьте следующий метод в MainActivity. CS:
Android вызывает OnCreateOptionsMenu метод, чтобы приложение могла указать ресурс меню для действия. В этом методе ресурс top_menus.xml преобразуется в переданный . Этот код приводит к отображению новых элементов меню Правка, сохранитьи настройки в .
Реализация Оноптионситемселектед
Добавьте следующий метод в MainActivity. CS:
Когда пользователь касается пункта меню, Android вызывает OnOptionsItemSelected метод и передает выбранный элемент меню. В этом примере реализация просто отображает всплывающее уведомление, указывающее, какой пункт меню был касанием.
Выполните сборку и запуск, ToolbarFun чтобы просмотреть новые пункты меню на панели инструментов. Toolbar Теперь отображается три значка меню, как показано на следующем снимке экрана:
Когда пользователь отменяет пункт меню «Правка», отображается всплывающее уведомление, указывающее, что был вызван метод:
При касании пользователем меню переполнения отображается пункт меню настройки . Обычно менее распространенные действия следует помещать в меню переполнения. в этом примере используется меню переполнения для настройки , так как оно не используется так часто, как Редактирование и Сохранение.
Дополнительные сведения о меню Android см. в разделе меню разработчиков Android.
Диагностика
Следующие советы могут помочь в отладке проблем, которые могут возникнуть при замене панели действий на панель инструментов.
У действия уже есть панель действий
Если приложение неправильно настроено для использования пользовательской темы, как описано в разделах применение пользовательской темы, при запуске приложения может возникнуть следующее исключение:
Кроме того, может быть создано сообщение об ошибке следующего типа: Java. lang. иллегалстатиксцептион: это действие уже содержит панель действий, предоставленную в окне дéкор.
Источник
Подключаем Toolbar
Toolbar — это полная замена ActionBar’а. В отличие от него Toolbar более настраиваемый. Так как Toolbar является обычным View, то мы можем разместить в нем любые View-компоненты (например, логотип компании). В этом уроке я расскажу, как добавить Toolbar в свое приложение.
Подготовка
Для того, чтобы добавить Toolbar в приложение нам нужно подключить библиотеку AppCompat из Android Support Library v7. Я не буду описывать как подключать эту библиотеку к проекту, т. к. в разных IDE это делается абсолютно по-разному.
Подключаем
Для начала нам нужно создать файл themes.xml в папке res/values вашего проекта и вставить в него следующий код:
colorPrimary — цвет нашего Toolbar’а
colorPrimaryDark — цвет статусбара (доступно с Android KitKat 4.4)
colorAccent — цвет виджетов приложения по умолчанию.
Теперь нам нужно прописать нашу тему в манифесте в разделе application:
Создайте файл toolbar.xml в папке res/layout после чего вставьте в него этот код:
После этого мы можем подключать наш Toolbar, прописав в layot-файле:
Готово. Осталось лишь указать нашей Activity на наш Toolbar. Но прежде чем это сделать нам нужно унаследоваться от ActionBarActivity вместо обычного класса Activity. Это нужно потому, что в классе AppCompatActivity есть метод setSupportActionBar(Toolbar), с помощью которого мы и указываем нашей Activity на Toolbar:
Устанавливаем цвет шрифта
Мы также можем изменить цвет заголовка Toolbara, вызвав метод setTitleTextColor и передать на вход наш цвет:
Чтобы каждый раз не прописывать цвет в коде мы можем сделать это в themes.xml, вставив между тегами style:
Включаем подсветку статусбара
Для того, чтобы статус бар подсвечивался вставляем между тегами style в values/themes.xml:
Создадим в файле values/dimens.xml новый dimen:
А файлах values-v19/dimens.xml и values-v21/dimens.xml вставляем:
24dp — это высота статусбара.
Устанавливаем отступ сверху нашему Toolbar’у:
Мы установили отступ в 24 dp в 19 и 21 версиях API, так как только у них поддерживается подсветка статусбара.
Также не забудьте поменять в манифесте targetSdkVersion на 19 или выше.
Начиная с Support Library v22 ActionBarActivity считается устаревшим. На замену к нему пришел AppCompatActivity.
Источник