Partager via


Résumé du chapitre 6. Clics de bouton

Remarque

Ce livre a été publié au printemps 2016 et n’a pas été mis à jour depuis. Il y a beaucoup dans le livre qui reste précieux, mais certains documents sont obsolètes, et certains sujets ne sont plus entièrement corrects ou complets.

Il Button s’agit de la vue qui permet à l’utilisateur de lancer une commande. Un Button est identifié par du texte (et éventuellement une image comme illustré dans le chapitre 13, Bitmaps). Par conséquent, Button définit la plupart des mêmes propriétés que Label:

Button définit également trois propriétés qui régissent l’apparence de sa bordure, mais la prise en charge de ces propriétés et de leur indépendance mutuelle est spécifique à la plateforme :

Button hérite également de toutes les propriétés et VisualElement View, y compris BackgroundColor, HorizontalOptionset VerticalOptions.

Traitement du clic

La Button classe définit un Clicked événement déclenché lorsque l’utilisateur appuie sur le Buttonfichier . Le Click gestionnaire est de type EventHandler. Le premier argument est l’objet Button qui génère l’événement ; le deuxième argument est un EventArgs objet qui ne fournit aucune information supplémentaire.

L’exemple ButtonLogger illustre une gestion simpleClicked.

Clics sur le bouton Partager

Plusieurs Button vues peuvent partager le même Clicked gestionnaire, mais le gestionnaire doit généralement déterminer qui Button est responsable d’un événement particulier. Une approche consiste à stocker les différents Button objets sous forme de champs et à vérifier celui qui déclenche l’événement dans le gestionnaire.

L’exemple TwoButtons illustre cette technique. Le programme montre également comment définir la IsEnabled propriété d’un Button false lorsque vous appuyez sur le Button bouton n’est plus valide. Un événement désactivé Button ne génère pas d’événement Clicked .

Gestionnaires d’événements anonymes

Il est possible de définir Clicked des gestionnaires en tant que fonctions lambda anonymes, comme l’illustre l’exemple ButtonLambdas . Toutefois, les gestionnaires anonymes ne peuvent pas être partagés sans code de réflexion désordonné.

Distinction des vues avec des ID

Plusieurs Button objets peuvent également être distingués en définissant la propriété ou AutomationId la StyleId propriété sur un string. Cette propriété est définie par Element mais elle n’est pas utilisée dans Xamarin.Forms. Il est destiné à être utilisé uniquement par les programmes d’application.

L’exemple SimpleKeypad utilise le même gestionnaire d’événements pour toutes les 10 touches numériques sur un pavé numérique et fait la distinction entre eux avec la StyleId propriété :

Capture d’écran triple du pavé numérique le plus simple

Enregistrement de données temporaires

De nombreuses applications doivent enregistrer des données lorsqu’un programme est arrêté et recharger ces données au démarrage du programme. La Application classe définit plusieurs membres qui aident votre programme à enregistrer et restaurer des données temporaires :

  • La Properties propriété est un dictionnaire avec string des clés et object des éléments. Le contenu du dictionnaire est automatiquement enregistré dans le stockage local de l’application avant l’arrêt du programme et rechargé lors du démarrage du programme.
  • La Application classe définit trois méthodes virtuelles protégées que la classe standard App du programme remplace : OnStart, OnSleepet OnResume. Ces événements font référence aux événements de cycle de vie des applications.
  • La SavePropertiesAsync méthode enregistre le contenu du dictionnaire.

Il n’est pas nécessaire d’appeler SavePropertiesAsync. Le contenu du dictionnaire est automatiquement enregistré avant l’arrêt du programme et récupéré avant le démarrage du programme. Il est utile pendant les tests du programme d’enregistrer les données si le programme se bloque.

Il est également utile de :

  • Application.Current, propriété statique qui retourne l’objet actuel Application que vous pouvez ensuite utiliser pour obtenir le Properties dictionnaire.

La première étape consiste à identifier toutes les variables de la page à conserver lorsque le programme se termine. Si vous connaissez tous les endroits où ces variables changent, vous pouvez simplement les ajouter au Properties dictionnaire à ce stade. Dans le constructeur de la page, vous pouvez définir les variables à partir du Properties dictionnaire si la clé existe.

Un programme plus important devra probablement traiter les événements de cycle de vie des applications. La méthode la plus importante est la OnSleep méthode. Un appel à cette méthode indique que le programme a quitté le premier plan. L’utilisateur a peut-être appuyé sur le bouton Accueil sur l’appareil, ou affiché toutes les applications, ou a arrêté le téléphone. Un appel est OnSleep la seule notification à laquelle un programme reçoit avant sa fin. Le programme doit profiter de cette occasion pour s’assurer que le Properties dictionnaire est à jour.

Un appel pour OnResume indiquer que le programme ne s’est pas arrêté après le dernier appel, OnSleep mais qu’il est maintenant en cours d’exécution au premier plan. Le programme peut utiliser cette opportunité pour actualiser les connexions Internet (par exemple).

Un appel se OnStart produit pendant le démarrage du programme. Il n’est pas nécessaire d’attendre que cet appel de méthode accède au Properties dictionnaire, car le contenu a déjà été restauré lorsque le App constructeur est appelé.

L’exemple PersistentKeypad est très similaire à SimpleKeypad, sauf que le programme utilise la OnSleep substitution pour enregistrer l’entrée du pavé numérique actuel et le constructeur de page pour restaurer ces données.

Remarque

Une autre approche de l’enregistrement des paramètres du programme est fournie par la Xamarin.Essentialsclasse Préférences .