android 键盘回车按钮事件,Android中ENTER键(确认键)点击响应

本文探讨了Android中在机顶盒环境下,遥控器触发的KeyEvent与手机TouchEvent的区别。通过分析View和ViewGroup的源码,揭示了ENTER键响应的处理流程,并解释了为何使用遥控器时,无用控件不会产生点击事件。最后,提供了一个修改后的ViewGroup dispatchKeyEvent方法,使得父控件能在子控件未处理按键事件时进行处理。
摘要由CSDN通过智能技术生成

背景:在机顶盒中通过遥控器操作,与传统手机交互方式不同。手机点击是发送两个TouchEvent(Down和Up),机顶盒是发送KeyEvent。所产生的效果看似相同,其实是两种不同的机制。

先看两段代码

1.目录android.view.View

调度按键事件

public boolean dispatchKeyEvent(KeyEvent event) {

if (mInputEventConsistencyVerifier != null) {

mInputEventConsistencyVerifier.onKeyEvent(event, 0);

}

// Give any attached key listener a first crack at the event.

// noinspection SimplifiableIfStatement

ListenerInfo li = mListenerInfo;

if (li != null && li.mOnKeyListener != null

&& (mViewFlags & ENABLED_MASK) == ENABLED

&& li.mOnKeyListener.onKey(this, event.getKeyCode(), event)) {

return true;

}

if (event.dispatch(this,

mAttachInfo != null ? mAttachInfo.mKeyDispatchState : null,

this)) {

ret

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值