En su forma más básica, la barra de acciones muestra el título de la actividad de un lado y un menú ampliado del otro. Incluso en esta forma sencilla, la barra de app proporciona información útil a los usuarios y ayuda a dar una apariencia coherente a las apps de Android.

Figura 1: Una barra de la app con el título de la app y el menú ampliado
A partir de Android 3.0 (API nivel 11), todas las actividades que usan el tema predeterminado tienen un elemento ActionBar
como barra de la app. No obstante, se fueron agregando funciones de la barra de la app gradualmente al elemento ActionBar
nativo en diferentes versiones de Android. Como consecuencia, el elemento ActionBar
nativo se comporta de manera diferente según la versión del sistema Android que use un dispositivo. Por el contrario, las funciones más recientes se agregan a la versión de Toolbar
de la biblioteca de compatibilidad y están disponibles en todos los dispositivos que puedan usar la biblioteca de compatibilidad.
Por este motivo, debes usar la clase Toolbar
de la biblioteca de compatibilidad para implementar las barras de la app de tus actividades. El uso de la barra de herramientas de la biblioteca de compatibilidad ayuda a garantizar que tu app tenga un comportamiento coherente en la mayor cantidad de dispositivos posible. Por ejemplo, el widget Toolbar
proporciona una experiencia de material design en dispositivos con Android 2.1 (API nivel 7) o versiones posteriores, pero la barra de acciones nativa no admite material design a menos que el dispositivo tenga Android 5.0 (API nivel 21) o versiones posteriores.
Cómo agregar una barra de herramientas a una actividad
En los siguientes pasos, se describe la manera de configurar un elementoToolbar
como la barra de la app de tu actividad:- Agrega la biblioteca de compatibilidad v7 appcompat a tu proyecto, como se describe en Configuración de la biblioteca de compatibilidad.
- Asegúrate de que la actividad extienda
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
Nota: Realiza este cambio en todas las actividades de tu app que usen
Toolbar
como barra de la app. - En el manifiesto de la app, configura el elemento
<application>
para usar uno de los temasNoActionBar
de appcompat. El uso de uno de estos temas evita que en la app se use la claseActionBar
nativa para proporcionar la barra de la app. Por ejemplo:<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Agrega un elemento
Toolbar
al diseño de la actividad. Por ejemplo, el siguiente código de diseño agrega un elementoToolbar
y hace que este flote por encima de la actividad:<android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Consulta la especificación de material design para obtener recomendaciones sobre la elevación de la barra de la app.
Ubica la barra de herramientas en la parte superior del diseño de la actividad, ya que la usarás como una barra de la app.
- En el método
onCreate()
de la actividad, llama al métodosetSupportActionBar()
de la actividad y pasa la barra de herramientas de la actividad. Este método establece la barra de herramientas como la barra de la app de la actividad. Por ejemplo:Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Note that the Toolbar defined in the layout has the id "my_toolbar" setSupportActionBar(findViewById(R.id.my_toolbar)) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }
Ahora tu app tiene una barra de acciones básica. De forma predeterminada, la barra de acciones contiene solo el nombre de la app y un menú ampliado. El menú de opciones inicialmente contiene solo el elemento Configuración. Puedes agregar más opciones a la barra de acciones y al menú ampliado, como se describe en Cómo agregar y administrar acciones.
Cómo usar los métodos de utilidad de la barra de la app
Una vez que configures la barra de herramientas como una barra de la app de la actividad, podrás acceder a los diferentes métodos de utilidad que proporciona la clase ActionBar
de la biblioteca de compatibilidad v7 appcompat. Este enfoque te permite realizar varias acciones útiles, como ocultar y mostrar la barra de la app.
Para usar los métodos de utilidad de ActionBar
, llama al método getSupportActionBar()
de la actividad. Este método muestra una referencia a un objeto appcompat ActionBar
.
Una vez que tengas esa referencia, podrás llamar a cualquiera de los métodos de ActionBar
para ajustar la barra de la app. Por ejemplo, para ocultar la barra de la app llama, a ActionBar.hide()
.