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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog