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



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



любые советы приветствуются. И спасибо вам продвижение.



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

780   10  

10 ответов:

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

причины

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

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

  3. У вас есть свобода, чтобы положить любой виджет внутри панель инструментов.

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

редактировать

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

создайте отдельный файл макета для панели инструментов (хорошо для повторного использования). В моем случае имя файла 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) и следовать рекомендациям по дизайну материалов.

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

My Files with big toolbar

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

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

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

обновление:

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

стандартный toolbar предназначен для использования в контент приложения.

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

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

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

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

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

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

каковы преимущества ToolBar over ActionBar если какие-то?

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

необходимо ли заменить ActionBar by ToolBar?

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

  1. вы можете легко настроить панель инструментов.
  2. вы можете добавить много виджетов внутри панели инструментов.
  3. можно добавить панель инструментов в вашем представлении.
  4. У вас есть свобода разместить его в любом месте родительского макета.
  5. у них есть собственная обработка / управление дочерним представлением 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

    Ничего не найдено.