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

某个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 本地部署一个javaweb项目
  • ¥15 Index was outside the bounds of the array
  • ¥15 (标签-Python|关键词-数据类型)(相关搜索:数据类型)
  • ¥15 一个识别内容的自动化脚本程序
  • ¥15 anaconda虚拟python环境部署langchain-chatchat报错
  • ¥20 matlab有约束条件下的多元函数求最小值
  • ¥50 如何隐藏网页弹出框的url地址栏
  • ¥20 metropolis算法模拟二维ising模型来计算磁化强度,fortran
  • ¥15 uniapp-typescript-vue报错
  • ¥15 oracle强制关机以后报错01033