xamarin.forms 앱을 쓰고 있는데 볼륨 업/다운 버튼을 모두 누르면 '특수 설정'페이지를 열려고합니다.xamarin.forms - 볼륨 업/다운 키 이벤트 리스너
xamarin.forms에서이를 수행 할 수있는 방법이 있습니까?
지금까지는 올바르게 작동하는 이벤트 수신기를 수행했습니다. 이제 마지막으로해야 할 일은 설정 페이지에 바인딩 컨텍스트를 전달하는 것입니다.
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);
}
}
해결. 나는 다음과 같은 라인을 추가 : 나는 당신이 구현 특정 플랫폼을 갈 필요가 있다고 생각
var vm= App.Current.MainPage.BindingContext as MainViewModel;
당신이 지금까지 무슨 짓을? 노력을 보여 주시겠습니까? – timiTao
Barney Chambers가 제안한 MainActivity.cs'OnKeyUp' 메소드를 추가했습니다. 지금 나는 페이지를 바꾸는 방법에 대한 답변을 찾기 위해 구글을 파고있다. –
새 정보로 질문을 업데이트하십시오. 귀하의 코드도 도움이 될 것입니다. – timiTao