前面的文章我们分析了状态栏 StatusBar 的构建流程,而导航栏 NavigationBar 其实是状态栏的一种,也是在 StatusBar 中被创建的,这里我们来看一下与其相近的导航栏 NavigationBar 的窗口的创建过程。
一、导航栏窗口
对于导航栏 NavigationBar 窗口创建,前面的流程与 StatusBar 窗口创建流程基本相同,都是经过层层调用,最终调用到 StatusBar 中的 makeStatusBarView() 方法,这里我们直接从该方法看起。
1、StatusBar
源码位置:/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
makeStatusBarView
// 导航栏控制器
private final NavigationBarController mNavigationBarController; @Override
public void start() {……// 创建并添加窗口元素createAndAddWindows(result);……
}public void createAndAddWindows(@Nullable RegisterStatusBarResult result) {makeS