Подтвердить что ты не робот

Должны ли мы заменить панель действий ToolBar?

Я использовал ToolBar, так как он был добавлен в Поддержка v7 библиотеки. И я думаю, что использовал его хорошо. Но есть точка, которую я не могу понять. Почему Google создал такой виджет? Я имею в виду, что мы можем сделать что-нибудь, что ToolBar может сделать, используя ActionBar. Почему мы должны использовать ToolBar? Каковы преимущества ToolBar over ActionBar, если таковые имеются? Нужно ли заменить ActionBar на ToolBar?

Любые советы приветствуются. И спасибо заранее.

PS: Я обнаружил, что ToolBar является декандантом ViewGroup. Итак, как мы можем использовать ToolBar как a Layout? Может ли кто-нибудь опубликовать некоторые коды этого?

4b9b3361

Ответ 1

Стандарт toolbar предназначен для использования в содержимом приложения.

A toolbar является обобщением action bar для использования в макетах приложений. Хотя action bar традиционно является частью Activity непрозрачной window decor, управляемой framework, a toolbar может быть размещен на любом произвольном уровне вложенности внутри иерархии представлений. Приложение может выбрать обозначение toolbar как action bar для Activity с помощью метода setActionBar().

toolbar поддерживает более сфокусированный набор функций, чем ActionBar. От начала до конца a toolbar может содержать комбинацию следующих необязательных элементов:

  • Кнопка навигации. Это может быть Up arrow, переключение навигационного меню, закрыть, свернуть, сделать или другой символ выбора приложения. Эта всегда должна использоваться для доступа к другим навигационным назначения в контейнере toolbar и его обозначение контента или иным образом оставить текущий контекст, обозначенный toolbar. Кнопка навигации вертикально выровнена в пределах toolbar минимальная высота, если установлена.
  • Логотип с логотипом. Это может простираться до высоты бара и может быть сколь угодно широким.
  • Заголовок и субтитры. Название должно быть указателем для toolbar текущая позиция в навигационной иерархии и содержащиеся там. subtitle, если он присутствует, должен указывать любые расширенную информацию о текущем контенте. Если приложение использует logo image он должен сильно рассмотреть вопрос о том, чтобы исключить a title и subtitle.
  • Один или несколько пользовательских представлений. Приложение может добавить произвольный ребенок просмотров на toolbar. Они появятся в этом положении в пределах раскладка. Если дочерний вид toolbar. LayoutParams указывает a Gravity значение CENTER_HORIZONTAL, точка будет пытаться центрировать внутри оставшееся место в toolbar после всех остальных элементов были измерены.
  • Меню действий. Операции menu будут привязываться к концу toolbar предлагает несколько частых, важных или типичных действий вдоль с дополнительным overflow menu для дополнительных действий. Кнопки Action выравниваются по вертикали в пределах минимальной высоты toolbar, если установлено.

В современных пользовательских интерфейсах Android разработчики должны опираться на визуально отличную цветовую схему для панелей инструментов, чем на значок своего приложения. Использование значка приложения плюс заголовок в качестве стандартного макета не рекомендуется на устройствах API 21 и новее.

Ответ 2

Да, вы должны заменить ActionBar новой панелью инструментов

Причины

1) Он выглядит современным и следует за новым дизайном материала

2) В отличие от панели действий панель инструментов не является частью декора оформления окна. Вы определяете ее и размещаете так же, как и любой другой виджет... поэтому у вас есть свобода размещать ее в любом месте родительского макета.

3) У вас есть свобода размещать любой виджет внутри панели инструментов.

4) Вы можете определить несколько панелей инструментов.

ИЗМЕНИТЬ

Что я имел в виду, вы можете разместить другие виджеты (представления) внутри панели инструментов.

Создайте отдельный файл макета для панели инструментов (полезно для повторного использования). В моем случае имя файла main_toolbar.

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

Затем включите эту панель инструментов в свой основной макет, например,

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

Как вы можете видеть в этом примере, я разместил TextView внутри панели инструментов

Ответ 3

почему Android будет создавать такой виджет?

Представьте, если хотите, планшет Android.

На этом планшете работает приложение. Это приложение имеет в правом нижнем углу экрана богатый текстовый редактор, в который можно ввести некоторые комментарии и отформатировать их с помощью жирного, курсивного и т.д.

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

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

Зачем нам использовать ToolBar?

Вам не нужно использовать Toolbar. У меня ~ 300 примеров приложений как часть моя книга, и на данный момент ровно нулевой из них используют Toolbar. В какой-то момент мне придется исправить это, так как я еще не написал главу Toolbar.

Нужно ли заменить ActionBar на ToolBar?

Нет. Есть способ сделать это, но это необязательно.

Ответ 4

Панель инструментов намного более гибкая, чем стандартная ActionBar, вы можете добавить гораздо больше инструментов на панели инструментов (поскольку она расширяет ViewGroup) и следовать Руководству по дизайну материалов.

Например, с помощью панели инструментов вы можете сделать следующее:

My Files with big toolbar

Обычный ActionBar не предназначен для расширения таким образом.

Кроме того, вы можете лучше манипулировать содержимым Панели инструментов, так как вы можете включить его в свой XML файл Action layout. Лично я использую LinearLayout или RelativeLayout вверху, на панели инструментов и ниже, заполняя оставшееся пространство, FrameLayout, где будут добавлены мои фрагменты.

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

UPDATE:

Google выпустила Библиотека поддержки дизайна Android. Рекомендуемый способ получения расширенного Appbar состоит в том, чтобы обернуть Toolbar с помощью AppBarLayout и добавить дополнительное представление, например TabLayout in. Чтобы получить FAB на панели инструментов, как на этом скриншоте, вы можете использовать CoordinatorLayout для переноса вашего макета, а затем использовать атрибуты привязки в FAB.

Ответ 5

Зачем нам использовать ToolBar?

Панель инструментов используется для предустановок и совместимости с backport, которые не поддерживаются старой библиотекой поддержки. Помните ActionbarSherlock, андроид сделал свой собственный, чтобы поддерживать панель действий на низкоуровневых API-устройствах.

Каковы преимущества ToolBar over ActionBar, если они есть?

Вы можете легко добавить пользовательский вид в XML-панели инструментов, как относительный вид макета, особенно пользовательский заголовок и значки с анимацией. У вас больше возможностей управления на панели инструментов, чем на старой обычной панели действий.

Нужно ли заменить ActionBar на ToolBar?

Если вы собираетесь поддерживать панель действий на устройствах ниже 2.0, то да, вам нужна совместимость с обратным портами для панели действий.

Ответ 6

  • Вы можете легко настроить панель инструментов.
  • В панели инструментов можно добавить много виджетов.
  • Вы можете добавить в панель многие панели инструментов.
  • У вас есть свобода размещать его в любом месте родительского макета.
  • У них есть собственное управление/управление дочерним представлением.

Ответ 7

Панель инструментов представляет собой обобщение баров действий для использования в макетах приложений. В то время как панель действий традиционно является частью непрозрачного оконного оформления Activity, управляемого каркасом, панель инструментов может быть размещена на любом произвольном уровне вложенности в иерархии представлений. Приложение может выбрать назначение панели инструментов в качестве панели действий для Activity с помощью метода setActionBar(). Вы можете найти более подробную информацию здесь. Мы заменили нашу панель действий, так как было проще настроить панель инструментов для материального дизайна. Например, цветовые палитры и исчезающее поведение анимации. Лично я не понимаю, почему андроид отбрасывает старые элементы управления и создает новый. Другим примером может быть RecyclerView. Не понимаю, почему они просто не улучшили старый API.

Ответ 8

Примечание. Оба будут поддерживать общую навигацию приложений, значки и иметь обратную поддержку.

Ответ зависит от того, какое взаимодействие пользователя (анимированная панель инструментов) требует ваших проектов. При этом вы должны реализовать анимацию на панели инструментов, чтобы сделать ее "Материалом".


ActionBar

Если вам просто нужна статическая панель вверху, которая может содержать значки, кнопку "Назад" и вы можете использовать тему.

Панель инструментов:

Если вы хотите сделать что-либо за пределами статической панели, например анимации.

Общая реализация и рекомендация по дизайну Google - это скрыть панель инструментов при прокрутке. Контрольный список материалов: скрытие панели приложений в прокрутке?

Ответ 9

Да

Поддержка Toolbar дает вам гораздо большую гибкость и свободу, практически без добавленной дополнительной стоимости, что нет причин, по которым я могу думать о том, чтобы не сделать переход. Переход на новый Toolbar на самом деле является одним из первых шагов по переносу существующих приложений на более материальный дизайн из-за простоты задачи и немедленного эффекта, который он оказывает на общий внешний вид приложения.

Ответ 10

Вот ссылка на документацию - http://developer.android.com/training/appbar/setting-up.html

Обратите внимание, что он не включает код, в который вы включаете его в другие файлы макета:

<include
    android:id="@+id/toolbar"
    layout="@layout/tool_bar"/>

Почему я перешел на панель инструментов. Одной из причин, по которым я изменил последнее приложение на Панели инструментов, было то, что, когда мы хотели настроить панель действий, это не сработало бы на разных версиях Android или когда мы расширили некоторые классы (сделав это прозрачный или показывая значок вместо имени приложения). Панели инструментов позволили нам настроить параметры, которые нам нужны.