按下安卓键盘上的Go键会向onEditActionListener发送两个KeyEvents的原因如下:
- 历史原因:在Android开发中,按下安卓键盘上的Go键实际上是触发了IME(输入法管理器)的默认行为。在早期的Android版本中,这种行为设计用于支持旧式物理键盘上的回车键功能。而在新的Android版本中,为了向后兼容,保留了这种行为。
- 第一个KeyEvent:按下Go键时,会首先发送一个KeyEvent.KEYCODE_ENTER的按键事件。这是因为IME的默认行为被配置为在按下Go键时模拟回车键的操作,以触发当前输入框的onEditorAction回调。
- 第二个KeyEvent:紧接着,IME会发送一个KeyEvent.KEYCODE_UNKNOWN的按键事件。这个按键事件通常被忽略,因为它没有特定的功能。但它仍然会被发送是为了与旧式物理键盘上的回车键行为保持一致。
总结起来,按下安卓键盘上的Go键会向onEditActionListener发送两个KeyEvents的原因是为了向后兼容旧式物理键盘上的回车键行为。第一个KeyEvent用于触发当前输入框的onEditorAction回调,而第二个KeyEvent则是为了保持与旧式键盘行为的一致性,但通常被忽略。
请注意,本回答中未提及任何特定的云计算品牌商和相关产品信息。如需了解相关产品信息,请查询腾讯云官方网站或咨询腾讯云客服。