DecorView 包含Status Bar么?
要解決這個(gè)疑問渣叛,花個(gè)一分鐘看完下面這段文字就可以了
- 我們?cè)贏ctivity中通常采用setContentView(R.layout.custom_layout)的方式來定義布局泰鸡,那這個(gè)布局custom_layout在整個(gè)View體系中處于什么位置向族?
- 懂Android的應(yīng)該都清楚或者聽說過:頁面都是依附在窗口之上的搬葬,而DecorView即是窗口最頂層的視圖
- Android frameworks中谐腰,與窗口視圖處理相關(guān)的類听怕,主要是Window及其實(shí)現(xiàn)類PhoneWindow
public class PhoneWindow extends Window implements MenuBuilder.Callback {
//...
//窗口頂層View
private DecorView mDecor;
//所有自定義View的根View, id="@android:id/content"
private ViewGroup mContentParent;
}
- DecorView其實(shí)是PhoneWindow中的一個(gè)內(nèi)部類迫卢,本質(zhì)上也是一個(gè)View废累,其只是擴(kuò)展了FrameLayout的實(shí)現(xiàn)
private final class DecorView extends FrameLayout implements RootViewSurfaceTaker {
//...
}
- 那么講了上面這些邓梅,到底我們?cè)O(shè)置的custom_layout在View體系中處于哪里?我這里貼一張圖
MacDown logo
- 我們custom_layout就在紅色矩形框中邑滨,大伙兒可以用最新Android Studio中Layout inspector這個(gè)工具去驗(yàn)證一下
- 有點(diǎn)懷疑的話日缨,還可以通過參考鏈接2中代碼去調(diào)試一下
參考鏈接: