Должны ли мы заменить панель действий на панель инструментов?
я использую ToolBar Так как он был добавлен в библиотека поддержки v7. И я думаю, что использовал его хорошо. Но есть один момент, который я не могу понять. Зачем Google создавать такой виджет? Я имею в виду, что мы можем сделать все ToolBar можно использовать ActionBar. Почему мы должны использовать ToolBar? Каковы преимущества ToolBar over ActionBar если какие-то? Это необходимо заменить ActionBar by ToolBar?
любые советы приветствуются. И спасибо вам продвижение.
PS: нашел ToolBar - Это decandant из ViewGroup. Итак, как мы могли бы использовать ToolBar Как a Layout? Может ли кто-нибудь опубликовать некоторые коды этого?
10 ответов:
Да, вы должны заменить ActionBar на новую панель инструментов.
причины
Он выглядит современным, и он следует за новым дизайном материала.
в отличие от панель действий, панель инструментов не является частью декора окна. Вы определяете его и размещаете так же, как и любой другой виджет... поэтому у вас есть свобода разместить его в любом месте родительского макета.
У вас есть свобода, чтобы положить любой виджет внутри панель инструментов.
Вы можете определить несколько панелей инструментов.
редактировать
Я имел в виду, что вы можете разместить другие виджеты (представления) внутри панели инструментов.
создайте отдельный файл макета для панели инструментов (хорошо для повторного использования). В моем случае имя файла main_toolbar.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:App="http://schemas.android.com/apk/res-auto" xmlns:segmentedgroup="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" App:theme="@style/ToolbarColoredBackArrow" android:layout_height="56dp" android:background="@color/primary_color" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/drawer_fntsize" android:text="Title" android:id="@+id/lbl_title" android:textColor="@color/title_text_color" android:layout_gravity="center" /> </android.support.v7.widget.Toolbar>затем включите эту панель инструментов в основной макет, как это
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/toolbar" layout="@layout/main_toolbar" /> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar" /> </RelativeLayout>Как вы можете видеть в этом примере я разместил Виджет TextView внутри панели инструментов
зачем Android будет создавать такой виджет?
представьте себе, если хотите, планшет на Android.
на этом планшете работает приложение. Это приложение имеет в правом нижнем углу экрана редактор форматированного текста, где можно ввести некоторые комментарии и отформатировать их с помощью полужирный,курсив и т. д.
в настольном или веб-приложении типичным подходом для этих параметров форматирования, помимо сочетаний клавиш, будет панель инструментов, как тот, который вы видите над текстовой областью ответа здесь на переполнение стека.
до
Toolbar, разработчики Android должны были либо свернуть свою собственную панель инструментов, либо поместить действия форматирования в панель действий. Хотя последний подход прост, он накладывает нагрузку на пользователя вышеупомянутого вымышленного приложения, поскольку пользователь должен постоянно переключать свой визуальный фокус с редактора (внизу экрана) на панель действий (вверху экрана).почему мы должны использовать Панель инструментов?
вы не должны использовать
Toolbar. У меня есть ~300 примеров приложений в рамках моей книги, и на данный момент, ровно ноль из них используютToolbar. Мне придется исправить это в какой-то момент, как я еще не написал главу оToolbar.необходимо ли заменить ActionBar на панель инструментов?
нет. Есть способ сделать это, но он не нужен.
панель инструментов гораздо более гибкая, чем стандартная панель действий, вы можете добавить гораздо больше инструментов на панели инструментов (поскольку она расширяет ViewGroup) и следовать рекомендациям по дизайну материалов.
например, с помощью панели инструментов можно сделать следующее:
обычная панель действий не предназначена для расширения таким образом.
кроме того, вы можете лучше манипулировать содержимым панели инструментов, поскольку вы можете включить его в свой xml-файл макета активности. Лично я использую LinearLayout или RelativeLayout с верхней, панели инструментов и ниже, заполняя оставшееся пространство, FrameLayout, где будут добавлены мои фрагменты.
наконец, вы можете разместить панель инструментов в любом месте, как вы установите его в файле макета.
обновление:
компания Google выпустила Библиотека Поддержки Дизайна Android. Рекомендуемый способ получить расширенную панель приложений-обернуть
ToolbarсAppBarLayoutи добавить дополнительные представления, такие какTabLayoutin. Чтобы получить FAB над панелью инструментов, как на этом скриншоте, вы можете использоватьCoordinatorLayoutчтобы обернуть содержимое макета, а затем использовать атрибуты привязки на FAB.
стандартный
toolbarпредназначен для использования в контент приложения.A
Toolbarобобщениеaction bars для использования в макетах приложений. В то время какaction barтрадиционно является частьюActivityС непрозрачнойwindow decorконтролируетсяframework, aToolbarможет быть размещен на любом произвольном уровне вложенности в иерархии представления. Приложение может выбрать для обозначенияToolbarкакaction barнаActivityС помощьюsetActionBar()метод.
Toolbarподдерживает более сфокусированный набор функций, чемActionBar. От начала до конца,toolbarможет содержать следующие необязательные элементы:
- кнопку навигации. Это может быть
Up arrow, навигационное меню , закрыть, свернуть, готово или другой глиф по выбору приложения. Этот кнопка всегда должна использоваться для доступа к другим навигационным пункты назначения в контейнереToolbarи его значение содержание или иным образом оставить текущий контекст, обозначенныйToolbar. Навигационная кнопка выровнена по вертикали в пределахToolbarминимальная высота, если установлено.- фирменное изображение логотипа. Это может распространяться на высоту штанги и может быть сколь угодно широким.
- название и подзаголовок. Название должно быть указателем для
Toolbarтекущая позиция в иерархии навигации и содержание там. Элементsubtitle, если они присутствуют, должны сообщить о любых расширенный информация о текущем содержании. Если приложение используетlogoimageон должен серьезно рассмотреть безtitleиsubtitle.- одно или несколько пользовательских представлений. Приложение может добавить произвольный ребенок взгляды на
Toolbar. Они появятся на этой позиции в макет. Если дочернее представлениеToolbar.LayoutParamsпоказываетGravityзначениеCENTER_HORIZONTALвид будет пытаться центрироваться в пределах свободное место остается вToolbarведь другие элементы были измерены.- меню Действие. Элемент
menuдействий будет прикрепить к концуToolbarпредлагая несколько частых, важных или типичных действий вдоль с дополнительнымoverflow menuдополнительные действия.Actionкнопки вертикально выровнены в пределахToolbarминимальная высота, если установлено.современной
Androidразработчики UIs должны больше полагаться на визуально различимую цветовую схему для панелей инструментов, чем на их приложение икона. Использование значка приложения плюс заголовок в качестве стандартного макета не рекомендуется на устройствах API 21 и более новых.
почему мы должны использовать
ToolBar?панель инструментов используется для совместимости с предварительными устройствами и обратным портом, которую не обеспечивает старая библиотека поддержки. Помните
ActionbarSherlock, android сделал там собственный для поддержки actionbar на устройствах API низкого уровня.каковы преимущества
ToolBaroverActionBarесли какие-то?вы можете легко добавить пользовательский вид С в XML панели инструментов, как относительный вид макета, особенно пользовательский заголовок и значки с анимацией. У вас есть больше контроля на панели инструментов, а не старый обычный actionbar.
необходимо ли заменить
ActionBarbyToolBar?если вы собираетесь поддерживать actionbar на устройствах ниже 2.0, то да, вам нужна совместимость с обратным портом для панели действий.
- вы можете легко настроить панель инструментов.
- вы можете добавить много виджетов внутри панели инструментов.
- можно добавить панель инструментов в вашем представлении.
- У вас есть свобода разместить его в любом месте родительского макета.
- у них есть собственная обработка / управление дочерним представлением it.
панель инструментов-это обобщение панелей действий для использования в макетах приложений. В то время как панель действий традиционно является частью непрозрачного декора окна активности, контролируемого рамкой,панель инструментов может быть размещена на любом произвольном уровне вложенности в иерархии представлений. Приложение может выбрать Панель инструментов в качестве панели действий для действия с помощью метода setActionBar (). Вы можете найти дополнительную информацию здесь. Мы заменили нашу панель действий, как это было проще настроить панель инструментов для дизайна материалов. Например, цветовые палитры и поведение исчезающей анимации. Лично я не понимаю, почему android выбрасывает старые элементы управления и создает новый. Другим примером может быть RecyclerView. Не понимаю, почему они просто не улучшили старый API.
Примечание: оба будут поддерживать общую навигацию приложения, значки и имеют обратную поддержку.
ответ зависит от того, какое взаимодействие с пользователем(анимация панели инструментов) требует ваш дизайн. При этом вы должны реализовать анимацию на панели инструментов, чтобы сделать ее материальной.
ActionBar:
Если вы просто хотите статическую панель в верхней части, которая может содержать значки, кнопку назад, и вы можете тему.
панели инструментов:
Если вы хотите чтобы сделать что-нибудь за пределами статической панели, такой как анимация.
общая реализация и рекомендации по дизайну Google-скрыть панель инструментов при прокрутке. контрольный список Material Design: скрытие панели приложений на прокрутке?
Да
поддержка
Toolbarдает вам гораздо больше гибкости и свободы, практически без дополнительных затрат, что нет никаких причин, я не могу думать о том, чтобы не сделать переход. Переход на новыйToolbarна самом деле это один из первых шагов к переносу существующих приложений на более материальный дизайн, из-за простоты задачи и немедленного эффекта, который он оказывает на общий внешний вид приложения.
вот ссылка на документацию -- http://developer.android.com/training/appbar/setting-up.html
обратите внимание, что он не включает код, где вы включаете его в другие файлы макета:
<include android:id="@+id/toolbar" layout="@layout/tool_bar"/>почему я перешел на панель инструментов -- одна из причин, по которой я изменил недавнее приложение на панель инструментов, заключалась в том, что когда мы хотели настроить панель действий, она не работала на разных версиях Android или когда мы расширяли определенные классы (делая их прозрачными или прозрачными). Отображение значка вместо имени приложения). Панели инструментов позволили нам параметры настройки, которые мы хотим.

Comments