Xamarin.Android
Xamarin.Android - Comment créer une barre d'outils
Recherche…
Remarques
Chère équipe,
Je pense que c'est bon de mentionner la documentation officielle d'Android où le contrôle de la barre d'outils est expliqué en détail:
https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
Il y a aussi du contenu intéressé sur la bibliothèque Android.Support.v7 utilisée dans l'exemple:
Ajouter une barre d'outils à l'application Xamarin.Android
Tout d'abord, vous devez ajouter la bibliothèque Xamarin.Android.Support.V7.AppCompat pour NuGet: https://www.nuget.org/packages/Xamarin.Android.Support.v7.AppCompat/
Dans le dossier "values" sous "Resources", ajoutez un nouveau fichier xml appelé "styles.xml":
Le fichier "styles.xml" doit contenir le code ci-dessous:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<!-- Base theme applied no matter what API -->
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<!--We will be using the toolbar so no need to show ActionBar-->
<item name="windowActionBar">false</item>
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">#2196F3</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">#1976D2</item>
<!-- colorAccent is used as the default value for colorControlActivated
which is used to tint widgets -->
<item name="colorAccent">#FF4081</item>
<item name="colorControlHighlight">#FF4081</item>
<!-- You can also set colorControlNormal, colorControlActivated
colorControlHighlight and colorSwitchThumbNormal. -->
La prochaine étape consiste à ajouter le fichier "toolbar.axml" contenant la définition du contrôle de la barre d'outils au dossier "layout":
Ajouter le code ci-dessous pour définir la barre d'outils:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Maintenant, ouvrez le fichier "Main.axml" et ajoutez le code ci-dessous juste en dessous de la balise de fermeture pour la première mise en page. Votre code devrait ressembler à celui-ci:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include android:id="@+id/toolbar" layout="@layout/toolbar" />
</LinearLayout>
Maintenant, vous devez ajouter des informations sur le thème que votre application utilise. Ouvrez le fichier "AndroidManifest" et ajoutez les informations de thème à la balise "application":
<application android:theme="@style/MyTheme" android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name">
La dernière étape consiste à connecter la barre d'outils dans le fichier d'activité. Ouvrez le fichier "MainActivity.cs". Vous devez changer la dérivation de "Activité" à "AppCompatActivity". Faites maintenant référence à la barre d'outils et définissez-la comme barre d'outils par défaut pour l'activité dans la méthode "OnCreate". Vous pouvez également définir le titre:
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = "Hello from Appcompat Toolbar";
Toute la méthode devrait ressembler à la suivante:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
SupportActionBar.Title = "Hello from Appcompat Toolbar";
}
Reconstruire le projet et le lancer pour voir le résultat: