【发布时间】:2019-08-09 15:35:47
【问题描述】:
我正在开发一个 Xamarin Forms 项目,其中一个要求是识别某些按键以触发 热键 操作。我们将部署应用程序以连接物理键盘的设备。目前,Android 是唯一的目标平台。
根据我昨天下午所做的一些研究,听起来好像需要自定义页面渲染器。今天早上在玩这个概念时,我偶然发现了 Activity 类的 On* 键方法。
我尝试将以下内容添加到 Android 项目中的 MainActivity 类中:
public override bool OnKeyUp([GeneratedEnum] Keycode keyCode, KeyEvent e)
{
return base.OnKeyUp(keyCode, e);
}
在此方法上放置断点似乎表明需要此代码(请注意,每当我按下键盘上的键时都会触发此方法)。
问题是当页面上的 Entry 控件具有焦点时也会触发此方法。按键不应该由 Entry 控件处理,而不是冒泡到页面吗?
一般来说,这是我想要完成的正确方法吗?还有其他方法可以让我指出可能会更好吗?
【问题讨论】:
-
我相信最好的方法是处理视图模型中的条目输入并将逻辑从那里触发到视图。
标签: xamarin.forms xamarin.android