开机:
NotificationShadeWindowView#applyVisibility
NotificationShadeWindowView#setVisibility 报错:
开机回先设置为可见.
如果没有启用锁屏设置的话,会设置为不可见.
拖动时的堆栈信息:
NotificationStackScrollLayout的位置以及功能:
status_bar_expanded.xml 是被包含在 super_notification_shade.xml
是 NotificationPanelView的孩子
notification_stack_scroller 被包含在NotificationsQuickSettingsContainer 以及 NotificationPanelView 就是 status_bar_expanded.xml 中.
点击顶部状态栏时NotificationShadeWindowView显示为可见的过程:
PhoneStatusBarView的onPanelPeeked方法调用StatusBar的makeExpandedVisible,这样NotificationShadeWindowView就可见了.
onPanelPeeked方法被调用的日志如下:
PhoneStatusBarView会把touchevent转发给NotificationPanelView . NotificationPanelView的事件处理会在move的时候调用setExpandedHeightInternal. 如下:
主要看 PanelViewController的 onTouch 方法.
ACTION_UP的处理:
会调用 endMotionEvent -> flingToHeight(0) ,会创建一个HeightAnimator,然后 animate到 0.