Xamarin.Les formulaires Bouton Enfoncé & Libéré de l'Événement
Je veux à mon événement à déclencher lorsque le bouton appuyé et relâché, mais je ne peux que trouver Cliquez sur événement dans Xamarin.Les formulaires.
Je crois qu'il doit y avoir quelques travaux autour pour obtenir cette fonctionnalité. Mon besoin est de le début d'un processus lorsque le bouton est pressé et d'arrêt lorsque relâchée. Il semble être une caractéristique de base mais Xamarin.Les formes n'ont pas droit maintenant.
J'ai essayé TapGestureRecognizer sur le bouton, mais le bouton est la seule mise cliquez sur l'événement.
MyButton.Clicked += (sender, args) =>
{
Log.V(TAG, "CLICKED");
};
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.Tapped += (s, e) => {
Log.V(TAG, "TAPPED");
};
MyButton.GestureRecognizers.Add(tapGestureRecognizer);
Gardez à l'esprit que j'ai besoin de ces événements à travailler sur Android et iOS togather.
- Vous devez écrire un bouton personnalisé convertisseur qui expose le sous-jacent de toucher des roues et de Retouche d'événements que les Formes des masques.
- pouvez-vous me suggérer quelques bon tutoriel ou de l'échantillon de la coutume moteur de rendu...???
- developer.xamarin.com/guides/xamarin-forms/custom-renderer
- Merci @Jason, Il a travaillé...
- découvrez ma réponse
Vous devez vous connecter pour publier un commentaire.
J'ai finalement trouvé la solution proposée par @Jason. Ici, nous allons...
De créer une sous-classe de Xamarin.Les formulaires.Bouton en mode d'émulation PCL projet, avec de l'événement
capacités de traitement des
Créer de la plate-forme de bouton de rendu de projet
Pour Andorid
Pour IOS
Instancier votre bouton personnalisé dans votre page
Espère que cela aide quelqu'un 🙂
Cela peut aussi être fait avec un effet au lieu d'une véritable moteur de rendu personnalisé. Voir ce post pour une explication de comment le faire:
https://alexdunn.org/2017/12/27/xamarin-tip-xamarin-forms-long-press-effect/
En cas que le post ne va jamais loin, voici le code que vous pouvez mettre en œuvre:
Depuis Xamarin.Les formes 2.4.0, Les événements
Enfoncé
etPublié
sont offerts à l'extérieur de la boîte (voir PR).Remarque: afin de parvenir à un Talkie-Walkie effet, vous pourriez vouloir utiliser
Device.BeginInvokeOnMainThread
(ou via le Prisme de l'IDeviceService
) pour invoquer les mesures de sorte que leReleased
événement seront appelés, sinon le thread d'INTERFACE utilisateur peut être bloqué.Alternativement, vous pouvez déclarer les gestionnaires d'événements comme
async
etawait
vos invocations, pour garder le thread d'INTERFACE utilisateur inoccupée.Pour intercepter
Pressed
etReleased
Événement sur Xamarin j'ai utiliséEffects
propriété comme expliqué dans ce Guide officiel.C'est encore plus simple en utilisant TouchTracking.Les formes.
D'abord l'ajouter à la bibliothèque de votre
Forms
projet (pas nécessaire dans la plate-forme spécifique du projet).Prochaine utilisation dans le code Xaml de l'asis
Avec
tt
référence à :Enfin, vous travaillez dans le code behind :
Handle_TouchAction
sera appelée à chaque fois une action de contact se produit, utilisezargs.Type
de distinguer l'actionPressed
,Released
,Exited
...N. B
Effects
est disponible pour les diverses composantesStackLayout
.