SystemUI剖析 2 狀態列控制項樹的結構

2021-10-17 23:52:28 字數 800 閱讀 1671

狀態列有兩種狀態,分別是正常以及下拉狀態。

狀態列的布局:r.layout.super_status_bar

r.layout.super_status_bar只需要關注兩個布局:layout/status_bar和layout/status_bar_expanded,它們分別是正常狀態列和下拉狀態列的布局;

1.正常狀態列:status_bar.xml

system_icons.xml

可以看到:正常狀態列布局可以分成低辨識度模式,通知圖示,狀態圖示,訊號圖示,電池圖示,時間圖示6個部分;

2.下拉狀態列:status_bar_expanded.xml

總結下:下拉狀態列:notificationpanelview

1.鎖屏主介面 keyguard_status_view.xml

2.下拉狀態列主介面 notificationsquicksettingscontainer

(1)設定面板  qs_panel.xml

①快速設定面板  id settings_panel

②下拉狀態列header  status_bar_expanded_header.xml

③qs_detail

④自定義面板  qs_customize_panel

(2)下拉通知欄

(3)鎖屏狀態列

3.鎖屏底部介面   keyguard_bottom_area.xml

Android透明狀態列 沉浸式狀態列

注意 android版本 4.4此方法有效 第一步 在activity的布局檔案中,根布局中加入以下第5 7行 第二步 新建類kitkatutils.class package cn.powerthink.djt.utils import android.annotation.suppresslin...

android 狀態列浸透 狀態列半透明

純 設定,不用修改manifest 首先這是主介面.xml 兩種情況 第一種 去掉xml中 style 效果 主介面置頂,可以實現半透明效果 activity oncreat 中 狀態列沉浸,4.4 生效 if build.version.sdk int build.version codes.ki...

隱藏狀態列

1.如果只是想把當前頁面的狀態列隱藏的話,直接用下面的 就可以了 ios6 2.如果是想把整個應用程式的狀態列都隱藏掉,操作如下 在info.plist上新增一項 status bar is initially hidden,value為yes 3.方法一 設定 現在ios7已經更改為透明,並且不占...