关于KeyEvent—焦点的处理

本文记录了在Android系统中将TouchEvent事件转换为KeyEvent处理的过程,特别是焦点移动的详细流程,包括设置焦点属性、使用cmd键入指令及处理Enter事件。通过自定义FocusFrameLayout控件,实现了在不支持触摸的系统上切换SwitchButton的功能。
摘要由CSDN通过智能技术生成
这几天在做Android 关于keyevent方面的代码的开发,现在记录一下,以备不时之需。

要求

将原来通过Touch触发的SwitchButton的切换事件的代码,移植到不支持触摸的andorid系统上。所以需要进行从TouchEvent变成KeyEvent。为了尽可能的少改动原来的代码,所以通过在原有的UI框架内加一个自定义Layout 的方法来添加焦点事件。

焦点移动流程:

1.在想要获得焦点的控件上添加属性focusable=“true”,并设置好上一个焦点和下一个焦点,nextFocusUp和nextFocusDown,属性值为控件的Id

<FocusFrameLayout
     android:id="@+id/focus_apr_setting_layout"
     app:enter_response="@+id/apr_setting_switch"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@drawable/strokecolor_focus"
     android:focusable="true"
     android:nextFocusUp="@+id/focus_recovery_log_enable_layout"
     android:nextFocusDown="@+id/focus_upload_crash_info_layout">

2.在Activity中实例化一个焦点控件,并吧页面的第一个焦点给它

focusAprSettinLayout.requestFocus();

3.在通过cmd键入

adb shell i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值