Cómo configurar la barra de la aplicación

Prueba la forma de Compose
Jetpack Compose es el kit de herramientas de IU recomendado para Android. Obtén información para agregar componentes en Compose.

En su forma más básica, la barra de acciones muestra el título de la actividad en un lado y un menú ampliado en el otro. Incluso en esta forma básica, la barra de la app proporciona información útil a los usuarios y les da a las apps de Android un aspecto uniforme.

Imagen que muestra la barra de la app en la app de Now in Android
Figura 1: Una barra de la aplicación con un ícono de acción en la app de "Ahora en Android".

Todas las actividades que usan el tema predeterminado tienen un ActionBar como barra de la app. Las funciones de la barra de la app se agregan al elemento ActionBar nativo en diferentes versiones de Android. Como resultado, el elemento ActionBar nativo se comporta de manera diferente según la versión de Android que use un dispositivo.

Por otro lado, las funciones se agregan a la versión de Toolbar de la biblioteca de AndroidX AppCompat, lo que significa que esas funciones están disponibles en dispositivos que usan las bibliotecas de AndroidX.

Usa la clase Toolbar de la biblioteca de AndroidX para implementar las barras de la app de tus actividades por este motivo. El uso de la barra de herramientas de la biblioteca de AndroidX hace que el comportamiento de tu app sea coherente en la mayor cantidad de dispositivos posible.

Cómo agregar una barra de herramientas a una actividad

En los siguientes pasos, se describe la manera de configurar un elemento Toolbar como la barra de la app de tu actividad:
  1. Agrega la biblioteca de AndroidX a tu proyecto, como se describe en la descripción general de AndroidX.
  2. Asegúrate de que la actividad extienda AppCompatActivity:

    Kotlin

    class MyActivity : AppCompatActivity() {
      // ...
    }

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
  3. En el manifiesto de la app, configura el elemento <application> para usar uno de los temas NoActionBar de AppCompat, como se muestra en el siguiente ejemplo. El uso de uno de estos temas evita que la app use la clase ActionBar nativa para proporcionar la barra de la app.
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
  4. Agrega un elemento Toolbar al diseño de la actividad. Por ejemplo, el siguiente código de diseño agrega un elemento Toolbar y hace que este flote por encima de la actividad:
    <androidx.appcompat.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 app.

  5. En el método onCreate() de la actividad, llama al método setSupportActionBar() de la actividad y pasa la barra de herramientas de la actividad, como se muestra en el siguiente ejemplo. Este método establece la barra de herramientas como la barra de la app de la actividad.

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // 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 el nombre de la app y un menú ampliado, que inicialmente contiene el elemento Configuración. Puedes agregar más acciones a la barra de acciones y al menú ampliado, como se describe en Cómo agregar y controlar 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 métodos de utilidad que proporciona la clase ActionBar de la biblioteca de AndroidX. Este enfoque te permite realizar 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 ActionBar de AppCompat. 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().