Dans sa forme la plus basique, la barre d’action affiche le titre de l’activité d’un côté et un menu de débordement de l’autre. Même sous cette forme simple, la barre d’apps fournit des informations utiles aux utilisateurs et contribue à donner aux apps Android un aspect et une sensation cohérents.
Figure 1. Une barre d’app avec le titre de l’app et le menu de débordement.
À partir d’Android 3.0 (niveau 11 de l’API), toutes les activités qui utilisent le thème par défaut ont un ActionBar
comme barre d’app. Cependant, les fonctionnalités de la barre d’apps ont été progressivement ajoutées à la ActionBar
native au fil des différentes versions d’Android. Par conséquent, la ActionBar
native se comporte différemment selon la version du système Android qu’un appareil peut utiliser. En revanche, les fonctionnalités les plus récentes sont ajoutées à la version Toolbar
de la bibliothèque de support, et elles sont disponibles sur tout appareil pouvant utiliser la bibliothèque de support.
Pour cette raison, vous devriez utiliser la classe Toolbar
de la bibliothèque de support pour mettre en œuvre les barres d’application de vos activités. L’utilisation de la barre d’outils de la bibliothèque de support permet de garantir que votre app aura un comportement cohérent sur le plus grand nombre de périphériques. Par exemple, le widget Toolbar
offre une expérience de conception matérielle sur les appareils fonctionnant sous Android 2.1 (niveau 7 de l’API) ou plus, mais la barre d’action native ne prend pas en charge la conception matérielle à moins que l’appareil ne fonctionne sous Android 5.0 (niveau d’API 21) ou plus récent.
Ajouter une barre d’outils à une activité
Ces étapes décrivent comment configurer une Toolbar
barre d’apps de votre activité :
- Ajouter la bibliothèque de support v7 appcompat à votre projet, comme décrit dans Configuration de la bibliothèque de support.
- Assurez-vous que l’activité étend
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ...}
Java
public class MyActivity extends AppCompatActivity { // ...}
Remarque : Effectuez cette modification pour chaque activité de votre app qui utilise un
Toolbar
comme barre d’app. - Dans le manifeste de l’app, définissez l’élément
<application>
pour utiliser l’un des thèmesNoActionBar
d’appcompat. L’utilisation de l’un de ces thèmes empêche l’app d’utiliser la classe nativeActionBar
pour fournir la barre d’app. Par exemple :<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Ajouter un
Toolbar
à la disposition de l’activité. Par exemple, le code de disposition suivant ajoute unToolbar
et lui donne l’apparence de flotter au-dessus de l’activité :<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"/>
Voir la spécification Material Design pour les recommandations concernant l’élévation de la barre d’app.
Positionnez la barre d’outils en haut de la mise en page de l’activité, puisque vous l’utilisez comme une barre d’app.
- Dans la méthode
onCreate()
de l’activité, appelez la méthodesetSupportActionBar()
de l’activité, et passez la barre d’outils de l’activité. Cette méthode définit la barre d’outils comme la barre d’app pour l’activité. Par exemple: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
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar);}
Votre application a maintenant une barre d’action de base. Par défaut, la barre d’action contient juste le nom de l’app et un menu de débordement. Le menu d’options ne contient initialement que l’élément Paramètres. Vous pouvez ajouter d’autres actions à la barre d’action et au menu de débordement, comme décrit dans la section Ajout et traitement des actions.
Utiliser les méthodes utilitaires de la barre d’app
Une fois que vous avez défini la barre d’outils comme la barre d’app d’une activité, vous avez accès aux diverses méthodes utilitaires fournies par la classe ActionBar
de la bibliothèque de support v7 appcompat. Cette approche vous permet de faire un certain nombre de choses utiles, comme masquer et afficher la barre d’app.