StatusBar的布局文件status_bar.xml,文件位置:frameworks/base/packages/SystemUI/res/layout/status_bar.xml LinearLayout android:id="@+id/icons"我们看到的状态栏,系统默认是左边放通知图标notificationIcons,右边放状态图标statusIcons --1.通知图标区域:IconMerger android:id="@+id/notificationIcons" --2.状态...
果然,在 StatusBar 的 makeStatusBarView 方法中,status_bar_container 被替换为了一个Fragment。 这个CollapsedStatusBarFragment,只是一个container,包裹着几个部分。 在其onViewCreated中,加载了statusIcons布局。 我们要分析的 StatusIcon,在 Fragment 的 onViewCreated 中,开启了它罪恶的一生?不,它早已开启了罪恶的一生。
而status_bar.xml 被 CollapsedStatusBarFragment 加载。在它的onViewCreated 中,通过 id - signal_cluster 找到布局并inflate。 代码语言:javascript 复制 privateSignalClusterView mSignalClusterView;@OverridepublicvoidonViewCreated(View view,@Nullable Bundle savedInstanceState){...// 此处加载SignalClusterViewmSigna...
//创建包括在config.xml中定义要在statusbar上显示的所有icons,那么它包含icons个数在何处初始化? StatusBarIconList iconList = new StatusBarIconList(); //保存Notification是以Binder为key的 ArrayList<IBinder> notificationKeys = new ArrayList<IBinder>(); //保存在statusbar上显示的StatusBarNotification Arr...
@layout/system_icons,这部分就是状态栏右边部分,里面包含了电池图标和系统状态图标等等。 由statusBarFragment.initNotificationIconArea(mNotificationIconAreaController) 可知,会进入到CollapsedStatusBarFragment 的 initNotificationIconArea 方法里 // frameworks/base/packages/SystemUI/src/com/android/systemui/statusb...
android:id="@+id/system_icons" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical"> <com.android.systemui.statusbar.phone.StatusIconContainer android:id="@+id/statusIcons" android:layout_width="0dp" ...
Android supports light/dark brightness for statusbar icons. On startup, the FlutterActivity always sets the status bar icons to light. When trying to create an app with dark status bar icons, this causes a flicker between brightness on s...
StatusBarIconList mIcons = new StatusBarIconList(); ……… mIcons.defineSlots(res.getStringArray(com.android.internal.R.array.config_statusBarIcons)); StatusBarPolicy.java -- > setIcon(…) StatusBarManager.java-- > setIcon(…) StatusBarManagerService.java-- > setIcon(…) ...
补充:在 status_bar.xml 中 system_icon_area:就是显示蓝牙、wifi、VPN、网卡icon那块区域。 接着我看可以注意到这么几句代码: mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons), mFeatureFlags); mDarkIconManager.setShouldLog(true); updateBlockedIcons(); // 添加图标组 mS...
status_bar, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { ... // 这里可以看出status_bar布局中的statusIcons就是我们展示各种Icon的区域 mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons)); mDarkIconManager.setSh...