不积跬步无以至千里
最近android7.1的项目提了个需求:想要当锁屏的时候,禁止下拉状态栏。当然锁屏这块关于通知栏的逻辑是在SystemUI中(/frameworks/base/package/SystemUI)。
关于锁屏和下拉状态栏都是在NotificationPanelView这块控制着事件的分发和逻辑,因此控制锁屏下拉的逻辑也在这,在这里我们只要把关于锁屏状态时,禁止掉状态栏的下拉事件和功能调用的展开逻辑就可以了,因为在锁屏界面下拉的是Quick_Setting的操作,因此下面你会看到是控制QS的逻辑,废话不多说,撸代码。
话外,如果你不是android7.0的版本,有可能修改后效果不佳,可以参考另外一篇文章,这里是后来的修改方法(亲测有效,修改更加简单):如下:
代码路径:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
1、拦截Touch事件的触发展开逻辑