¿Debemos reemplazar la barra de acción por ToolBar?
He estado usando la ToolBar
desde que fue agregada a la biblioteca de la ayuda v7 . Y creo que lo usé bien. Pero hay un punto que no puedo entender. ¿Por qué creará Google un widget de este tipo? Quiero decir que podemos hacer cualquier cosa ToolBar
puede hacer mediante el uso de ActionBar
. ¿Por qué tenemos que usar ToolBar
? ¿Cuáles son las ventajas de ToolBar
sobre ActionBar
si las hay? ¿Es necesario reemplazar ActionBar
por ToolBar
?
Cualquier sugerencia es apreciada. Y gracias de antemano.
- Barra de herramientas NavigationIcon tema suelto
- Sincronizar la altura de la barra de herramientas con ViewPager
- Diferencia entre support.v7.widgets y android.widgets Barra de herramientas, Fragment
- Android: Estilo ActionMode en AppCompat-v7 con la barra de herramientas
- animateLayoutChanges no animar la eliminación de la flecha hacia atrás desde la barra de herramientas
PS: Encontré ToolBar
es un decandante de ViewGroup
. Entonces, ¿cómo podríamos utilizar ToolBar
como un Layout
? ¿Podría alguien publicar algunos códigos de eso?
- Android Lollipop Toolbar vs vista personalizada
- Mostrar barra de herramientas después de oculto por desplazamiento en el botón de clic
- Cómo crear las pestañas de la barra de herramientas con ViewPager en el diseño del material
- Cómo ocultar la barra de herramientas cuando desplazamiento de contenido en android
- Icono personalizado en la barra de herramientas de Android
- ¿Cómo puedo colocar un ProgressBar a la derecha de la barra de herramientas?
- Establecer el icono al final de la barra de herramientas
- Spinner onItemSelected no se llama usando Marsmallow
Sí, deberías reemplazar ActionBar con una nueva barra de herramientas
Razones
1) Parece moderno y sigue nuevo diseño material
2) A diferencia de la barra de acción, la barra de herramientas no forma parte de la decoración de la ventana. Lo define y lo coloca como cualquier otro widget … por lo que tiene libertad para colocarlo en cualquier parte del diseño padre.
3) Tienes libertad para poner cualquier widget dentro de la barra de herramientas.
4) Puede definir varias barras de herramientas.
EDITAR
Lo que quiero decir es que puede colocar otros widgets (vistas) dentro de la barra de herramientas.
Crear un archivo de diseño independiente para la barra de herramientas (bueno para la reutilización) .En mi caso el nombre de archivo es 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>
A continuación, incluya esta barra de herramientas en su diseño principal como este
<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" />
Como se puede ver en este ejemplo, coloqué TextView dentro de la barra de herramientas
¿Por qué Android crearía tal widget?
Imagínese, si lo desea, una tableta Android.
Esta tableta está ejecutando una aplicación. Esa aplicación tiene, en la esquina inferior derecha de la pantalla, un editor de texto enriquecido, donde se pueden introducir algunos comentarios y darles formato con negrita , cursiva , etc.
En una aplicación de escritorio o Web, un enfoque típico para esas opciones de formato, además de los accesos directos del teclado, sería una barra de herramientas, como la que se ve por encima del área de texto de respuesta aquí en Desbordamiento de pila.
Antes de la Toolbar
de Toolbar
, los desarrolladores de Android tenían que rodar su propia barra de herramientas o poner las acciones de formato en la barra de acción. Mientras que el último acercamiento es fácil, pone una tensión en el usuario de la aplicación ficticia mencionada, pues el usuario tiene que seguir cambiando su foco visual del redactor (parte inferior de la pantalla) a la barra de la acción (tapa de la pantalla).
¿Por qué tenemos que usar ToolBar?
No es necesario utilizar la Toolbar
. Tengo ~ 300 aplicaciones de la muestra como parte de mi libro , y por el momento, precisamente cero de ellas utilizan la Toolbar
. Voy a tener que corregir eso en algún momento, ya que todavía no he escrito un capítulo en la Toolbar
de Toolbar
.
¿Es necesario reemplazar ActionBar por ToolBar?
No. Hay una manera de hacer esto, pero no es necesario.
La barra de herramientas es mucho más flexible que la ActionBar estándar, puedes añadir muchas más herramientas en una barra de herramientas (ya que extiende ViewGroup) y seguir las directrices de diseño de material.
Por ejemplo, con una barra de herramientas, puede hacer lo siguiente:
Un ActionBar regular no está destinado a ser ampliado de esta manera.
Además, puede manipular mejor el contenido de la barra de herramientas, ya que puede incluirlo en el archivo xml de su diseño de actividad. Personalmente, yo uso un LinearLayout o un RelativeLayout con en la parte superior, la barra de herramientas, y debajo, llenando el espacio sobrante, un FrameLayout donde mis Fragmentos serán agregados.
Por último, puede colocar su barra de herramientas en cualquier lugar que desee, a medida que lo establece en su archivo de diseño.
ACTUALIZAR:
Google lanzó Android Design Support Library . La forma recomendada de obtener una Appbar extendida es enrollar la Toolbar
con AppBarLayout
y agregar una vista adicional como TabLayout
. Para obtener una FAB sobre la barra de herramientas como en esta captura de pantalla, puede utilizar CoordinatorLayout
para ajustar el contenido de la disposición y, a continuación, Atributos en el FAB.
Una toolbar
estándar se utiliza en el contenido de la aplicación.
Una Toolbar
es una generalización de action bar
de action bar
para su uso en los diseños de aplicaciones. Mientras que una action bar
es tradicionalmente parte de la window decor
opaca de la window decor
de una Activity
controlada por el framework
, una Toolbar
puede colocarse en cualquier nivel arbitrario de anidamiento dentro de una jerarquía de vistas. Una aplicación puede optar por designar una Toolbar
como action bar
para una Activity
mediante el método setActionBar()
.
Toolbar
admite un conjunto de ActionBar
más centrado que ActionBar
. De principio a fin, una toolbar
puede contener una combinación de los siguientes elementos opcionales:
- Un botón de navegación . Esto puede ser una
Up arrow
, el menú de navegación alternar, cerrar, colapsar, hecho u otro glifo de la elección de la aplicación. Este botón siempre debe usarse para acceder a otros destinos de navegación dentro del contenedor de laToolbar
deToolbar
y su contenido significativo o dejar el contexto actual que significa laToolbar
. El botón de navegación está alineado verticalmente dentro de la altura mínima de laToolbar
deToolbar
, si se establece. - Una imagen de logotipo de marca . Esto puede extenderse a la altura de la barra y puede ser arbitrariamente ancho.
- Título y subtítulo . El título debe ser una señal para la posición actual de la
Toolbar
deToolbar
en la jerarquía de navegación y el contenido allí contenido. Elsubtitle
, si está presente, debe indicar cualquier información extendida sobre el contenido actual. Si una aplicación utiliza unaimage
logo
, debe considerar detenidamente la omisión de untitle
y unsubtitle
. - Una o varias vistas personalizadas . La aplicación puede agregar vistas secundarias arbitrarias a la
Toolbar
. Aparecerán en esta posición dentro del diseño. Si laToolbar
deToolbar
una vista secundaria.LayoutParams
indica un valor deGravity
deCENTER_HORIZONTAL
la vista tratará de centrarse dentro del espacio disponible restante en laToolbar
después de que se hayan medido todos los demás elementos. - Un menú de acción . El
menu
de acciones pasará al final de laToolbar
deToolbar
ofreciendo algunas acciones frecuentes, importantes o típicas junto con unoverflow menu
opcional para acciones adicionales.Action
botones deAction
están alineados verticalmente dentro de la altura mínima de laToolbar
deToolbar
, si se establece.
En Android
interfaces de usuario modernas de Android
desarrolladores deberían apoyarse más en un esquema de colores visualmente distinto para las barras de herramientas que en el icono de la aplicación. El uso del icono de la aplicación más el título como un diseño estándar se desaconseja en los dispositivos API 21 y más reciente.
Una barra de herramientas es una generalización de barras de acción para su uso en los diseños de aplicaciones. Mientras que una barra de acción es tradicionalmente parte de la decoración opaca de la ventana de una actividad controlada por el marco, una barra de herramientas puede colocarse en cualquier nivel arbitrario de anidamiento dentro de una jerarquía de vistas . Una aplicación puede optar por designar una barra de herramientas como barra de acción para una actividad mediante el método setActionBar (). Puede encontrar más información aquí . Hemos reemplazado nuestra barra de acción, ya que era más fácil personalizar la barra de herramientas para el diseño del material. Paletas de colores y comportamiento de animación que desaparece por ejemplo. Personalmente, no entiendo por qué android tira antiguas controles y crear uno nuevo. Otro ejemplo sería RecyclerView. No entiendo por qué simplemente no mejoraron la API antigua.
¿Por qué tenemos que usar
ToolBar
?
La barra de herramientas se utiliza para pre-dispositivos y compatibilidad de backport que la antigua biblioteca de soporte no proporciona. Recuerde ActionbarSherlock
, android hecho propio para apoyar la barra de acción en los dispositivos de bajo nivel API.
¿Cuáles son las ventajas de
ToolBar
sobreActionBar
si las hay?
Puede agregar fácilmente vistas personalizadas en el XML de la barra de herramientas como una vista de disposición relativa, especialmente un título personalizado e iconos con animaciones. Tiene más control en su barra de herramientas que en la barra de acción convencional antigua.
¿Es necesario reemplazar
ActionBar
porToolBar
?
Si va a soportar la barra de acción en dispositivos inferiores a 2,0, entonces sí, necesita una compatibilidad de back-port para la barra de acción.
- Puede personalizar fácilmente la barra de herramientas.
- Puede agregar muchos widgets dentro de la barra de herramientas.
- Puede agregar muchas barras de herramientas en su vista.
- Tiene libertad para colocarlo en cualquier parte del diseño de los padres.
- Tienen manejo propio / manejo de la vista de niño.
Nota : Ambos soportarán navegación general de aplicaciones, iconos y soporte retroactivo.
La respuesta depende de la interacción del usuario (barra de herramientas de animación) que sus diseños requieren. Dicho esto, debe implementar animaciones en la barra de herramientas para que sea Material.
Barra de acciones:
Si simplemente desea una barra estática en la parte superior que puede alojar iconos, botón de nuevo y puede tema.
Barra de herramientas:
Si quieres hacer algo más allá de una barra estática, como animaciones.
Una implementación común y la recomendación de diseño de Google es ocultar la barra de herramientas al desplazarse. Lista de verificación de material de diseño: ocultar la barra de aplicaciones en el desplazamiento?
Sí
La Toolbar
soporte te da tanta más flexibilidad y libertad, prácticamente sin costo adicional, que no hay ninguna razón por la que pueda pensar en no hacer la transición. La transición a la nueva Toolbar
es en realidad uno de los primeros pasos para transferir las aplicaciones existentes a un diseño de material más debido a la simplicidad de la tarea y al efecto inmediato que tiene en la apariencia general de la aplicación.
Aquí está el enlace de documentación – http://developer.android.com/training/appbar/setting-up.html
Tenga en cuenta que no incluye el código en el que lo incluya en los demás archivos de diseño:
<include android:id="@+id/toolbar" layout="@layout/tool_bar"/>
Por qué cambié a Barra de herramientas – Una de las razones por las que cambié una aplicación reciente a Barra de herramientas fue que cuando queríamos personalizar la barra de acción, no funcionaría en versiones de Android diferentes o cuando extendiéramos ciertas clases (haciéndola transparente o mostrando Un icono en lugar del nombre de la aplicación). Las barras de herramientas nos han permitido las opciones de personalización que queremos.
- Android Studio 1.2 versión beta se bloquea en la depuración
- ¿Cómo añadir una entrada de idioma adicional a Android?