Configurer la barre d'application

Essayer Compose
Jetpack Compose est le kit d'outils d'interface utilisateur recommandé pour Android. Découvrez comment ajouter des composants dans Compose.

Dans sa forme la plus basique, la barre d'action affiche le titre de l'activité d'un côté et un menu à développer de l'autre. Même sous cette forme de base, la barre d'application fournit des informations utiles aux utilisateurs et harmonise l'apparence des applications Android.

Image montrant la barre d'application dans l'application Now in Android
Image 1. Une barre d'application avec une icône d'action dans l'application Now in Android.

Toutes les activités qui utilisent le thème par défaut ont un ActionBar comme barre d'application. Les fonctionnalités de la barre d'application sont ajoutées au ActionBar natif dans différentes versions d'Android. Par conséquent, le ActionBar natif se comporte différemment selon la version d'Android utilisée par un appareil.

D'autre part, des fonctionnalités sont ajoutées à la version de Toolbar de la bibliothèque AppCompat AndroidX, ce qui signifie qu'elles sont disponibles sur les appareils qui utilisent les bibliothèques AndroidX.

Pour cette raison, utilisez la classe Toolbar de la bibliothèque AndroidX pour implémenter les barres d'application de vos activités. L'utilisation de la barre d'outils de la bibliothèque AndroidX permet d'harmoniser le comportement de votre application sur un large éventail d'appareils.

Ajouter une barre d'outils à une activité

Ces étapes décrivent comment configurer un Toolbar comme barre d'application de votre activité :
  1. Ajoutez la bibliothèque AndroidX à votre projet, comme décrit dans la présentation d'AndroidX.
  2. Assurez-vous que l'activité étend AppCompatActivity:

    Kotlin

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

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
  3. Dans le fichier manifeste de l'application, définissez l'élément <application> pour qu'il utilise l'un des thèmes NoActionBar d'AppCompat, comme illustré dans l'exemple suivant. L'utilisation de l'un de ces thèmes empêche l'application d'utiliser la classe ActionBar native pour fournir la barre d'application.
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. Ajoutez un élément Toolbar à la mise en page de l'activité. Par exemple, le code de mise en page suivant ajoute un élément Toolbar et lui donne l'impression de flotter au-dessus de l'activité :
    <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"/>
    

    Consultez la spécification Material Design pour obtenir des recommandations concernant l'élévation de la barre d'application.

    Positionnez la barre d'outils en haut de la mise en page de l'activité, car vous l'utilisez comme barre d'application.

  5. Dans la méthode onCreate() de l'activité, appelez la méthode setSupportActionBar() de l'activité et transmettez la barre d'outils de l'activité, comme illustré dans l'exemple suivant. Cette méthode définit la barre d'outils comme barre d'application pour l'activité.

    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);
    }
    

Votre application dispose désormais d'une barre d'action de base. Par défaut, la barre d'action contient le nom de l'application et un menu à développer, qui contient initialement l'élément Settings (Paramètres). Vous pouvez ajouter d'autres actions à la barre d'action et au menu à développer, comme décrit dans la section Ajouter et gérer des actions.

Utiliser les méthodes utilitaires de la barre d'application

Une fois que vous avez défini la barre d'outils comme barre d'application d'une activité, vous avez accès aux méthodes utilitaires fournies par la classe ActionBar de la bibliothèque AndroidX. Cette approche vous permet d'effectuer des actions utiles, comme masquer et afficher la barre d'application.

Pour utiliser les méthodes utilitaires ActionBar, appelez la méthode getSupportActionBar() de l'activité. Cette méthode renvoie une référence à un objet ActionBar AppCompat. Une fois que vous disposez de cette référence, vous pouvez appeler l'une des méthodes ActionBar pour ajuster la barre d'application. Par exemple, pour masquer la barre d'application, appelez ActionBar.hide().