Android 按上/下键,焦点会移动到第一个控件上面或最后一个控件下面的解决办法

Android开发过程中,在页面中按上或者下键,有时候会出现焦点移动到第一个控件上面或者最后一个控件下面,即焦点会移出当前View,这时就需要对第一个控件或最后一个控件做限制。

以第一个控件(该控件设置了android:focusable="true"属性)为例,可以在 Activity 等可以监听按键事件的类中,做拦截限制,例如:

java 复制代码
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
            // 获取当前焦点所在的View
            View focusView = getCurrentFocus();
            if (focusView != null || focusView.getId() == R.id.ll_bluetooth_name)) {
                // 选中页面第一项后不允许再向上移动
                return true;
            }
        }
        return super.onKeyDown(keyCode, event);
    }

而最后一个控件按下键的拦截限制同理。

相关推荐
机智的张尼玛9 小时前
我基于 Kotlin Multiplatform 实现了一套跨平台的弱网离线同步引擎
android·开源·kotlin
安卓修改大师12 小时前
安卓修改大师反编译引擎Apktool深度解析:版本选择、参数说明与实战技巧
android
error:(12 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
黄林晴14 小时前
Kuikly 是什么?和KMP有什么关系?
android·前端
帅次15 小时前
Android 高级工程师面试:Kotlin 语法基础 近1年高频追问 22 题
android·面试·kotlin·扩展函数·空安全
想你依然心痛16 小时前
嵌入式日志系统:分级日志、环形缓冲区与远程输出——运行时调试、非侵入
android·前端·javascript
用户693717500138417 小时前
AI Agent 里的 Loop 到底是什么?
android·前端·后端
海天鹰17 小时前
安卓分割空字符串数组长度为1
android
Coffeeee18 小时前
从 Android 15 到 Android 17,谷歌猝不及防的音频改动
android·前端·google
用户693717500138418 小时前
AI 领域的 Harness,到底是什么意思?
android·前端·后端