Ltanke 2021-08-30 22:11 采纳率: 33.3%
浏览 276

某个Activity界面在当前界面时,屏蔽系统默认的一些手势是怎么做到的?

今天观察一个app,在有些activity的界面,软件是可以通过从下向上滑来把软件退到后台的,但进入有些界面后,activity 不在响应这种系统级的手势操作了,也就是说只能通过这个activity界面上设置的退出键才能退出软件。这个是怎么实现的?

  • 写回答

1条回答 默认 最新

  • weixin_42120514 2021-08-31 10:35
    关注

    重写onKeyDown()监听、屏蔽back键、home键
    在Activity中重写onKeyDown(),代码如下:

      @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                Toast.makeText(MainActivity.this, "返回键无效", Toast.LENGTH_SHORT).show();
                return true;//return true;拦截事件传递,从而屏蔽back键。
            }
            if (KeyEvent.KEYCODE_HOME == keyCode) {
                Toast.makeText(getApplicationContext(), "HOME 键已被禁用...", Toast.LENGTH_SHORT).show();
                return true;//同理
            }
            return super.onKeyDown(keyCode, event);
        }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月30日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵