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);
    }

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

相关推荐
2501_916008896 小时前
苹果上架工具怎么选 不用 Mac 上架 App Store 的几种方案
android·macos·ios·小程序·uni-app·iphone·webview
jijihusong0068 小时前
KMP全栈开发教程:从Android到AI Agent
android·人工智能
_祝你今天愉快10 小时前
Android Binder 驱动 - 内核驱动层源码初探
android
stevenzqzq10 小时前
【无标题】
android
梦幻通灵11 小时前
Notepad++格式化Json两种方案【持续更新】
android·json·notepad++
1024+12 小时前
YOLO 转 RKNN 识别率降低调优操作手册(新手篇)
android·yolo·kotlin
木易 士心12 小时前
深度解析 Android 音频焦点处理与实战开发
android·音视频
祉猷并茂,雯华若锦13 小时前
Appium 3.x安卓APP企业级安装实战
android·appium
微露清风14 小时前
浅析 MySQL 索引
android·数据库·mysql
91刘仁德14 小时前
MySQL 数据类型详解
android·笔记·mysql·adb