Je suis en train d'écrire une application xamarin.forms et je veux ouvrir la page 'paramètres spéciaux' quand j'appuie sur les boutons de volume haut et bas.xamarin.forms - écouteur d'événement pour les touches de volume haut et bas
Y at-il un moyen de le faire dans xamarin.forms?
Pour l'instant, j'ai fait un écouteur d'événement, qui fonctionne correctement. Maintenant, la dernière chose que je dois faire est de passer le contexte de liaison à la page des paramètres.
List<Keycode> _pressedKeys = new List<Keycode>();
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if(keyCode == Keycode.VolumeDown)
{
_pressedKeys.Add(keyCode);
CheckBoth();
return true;
}
if (keyCode == Keycode.VolumeUp)
{
_pressedKeys.Add(keyCode);
CheckBoth();
return true;
}
return base.OnKeyDown(keyCode, e);
}
public override bool OnKeyUp(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.VolumeDown)
{
_pressedKeys.Remove(keyCode);
return true;
}
if (keyCode == Keycode.VolumeUp)
{
_pressedKeys.Remove(keyCode);
return true;
}
return base.OnKeyUp(keyCode, e);
}
public void ChangePage()
{
((App)App.Current).ChangeScreen(new SettingsPage());
}
public void CheckBoth()
{
try
{
if (_pressedKeys.Contains(Keycode.VolumeDown) &&
_pressedKeys.Contains(Keycode.VolumeUp))
{
Console.WriteLine("It works!");
((App)App.Current).ChangeScreen(new SettingsPage());
_pressedKeys.Clear();
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
Résolu. J'ai ajouté la ligne suivante:
var vm= App.Current.MainPage.BindingContext as MainViewModel;
ce que vous avez jusqu'à présent? Montrez votre effort? – timiTao
J'ai ajouté à ma méthode MainActivity.cs 'OnKeyUp', que Barney Chambers a suggéré. Maintenant, je suis à la recherche de google pour trouver comment changer de page. –
S'il vous plaît, mettez à jour votre question avec de nouvelles informations. Votre code devrait être utile aussi. – timiTao