不知道原出處,所以只能表明轉(zhuǎn)載處了:http://blog.csdn.net/sunny2come/article/details/8899138,順便增加了個(gè)RobotiumViewer的截圖以方便理解。
創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雞冠企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),雞冠網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
摘要 一、DecorView為整個(gè)Window界面的最頂層View。 二、DecorView只有一個(gè)子元素為L(zhǎng)inearLayout。代表整個(gè)Window界面,包含通知欄,標(biāo)題欄,內(nèi)容顯示欄三塊區(qū)域。 三、LinearLayout里有兩個(gè)FrameLayout子元素。 (20)為標(biāo)題欄顯示界面。只有一個(gè)TextView顯示應(yīng)用
(請(qǐng)發(fā)郵件到 freeget.one@gmail.com 獲得最新翻強(qiáng)軟件。)
一、DecorView為整個(gè)Window界面的最頂層View。
二、DecorView只有一個(gè)子元素為L(zhǎng)inearLayout。代表整個(gè)Window界面,包含通知欄,標(biāo)題欄,內(nèi)容顯示欄三塊區(qū)域。
三、LinearLayout里有兩個(gè)FrameLayout子元素。
(20)為標(biāo)題欄顯示界面。只有一個(gè)TextView顯示應(yīng)用的名稱。也可以自定義標(biāo)題欄,載入后的自定義標(biāo)題欄View將加入FrameLayout中。
(21)為內(nèi)容欄顯示界面。就是setContentView()方法載入的布局界面,加入其中。
工具查看:
1.
下圖為SDK中tools文件夾下hierarchyviewer bat 查看ViewTree的結(jié)果:
(此時(shí)未替換標(biāo)題欄)
2.替換標(biāo)題欄后ViewTree的變化:
綠色區(qū)域發(fā)生了變化,改變?yōu)榱溯d入的title.xml文件的布局。
title.xml內(nèi)容為:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "fill_parent" android:layout_height= "fill_parent" > <ImageView android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:src= "@drawable/icon2" /> <TextView android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:id= "@+id/title_tv" android:textColor= "#FFFFFF" android:textStyle= "bold" android:text= "@string/app_name" /> </LinearLayout> |
通知欄繪制在1號(hào)LinearLayout中,還是繪制在DecorView中還有待探究。
-----------------
ApiDemo中app包下CustomTitle中自定義TitleBar代碼段
1 2 3 | requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.custom_title); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1); |
載入自定義titleBar后如何查找其中元素呢,其實(shí)還是findViewById就可以了,因?yàn)檩d入的自定義布局已經(jīng)在DecorView樹中了
而findViewById是怎么回事呢。
activity中findViewById源碼
1 2 3 | public View findViewById(int id) { return getWindow().findViewById(id); } |
調(diào)用了getWindow().findViewById,getWindow返回的是Window點(diǎn)入查看window中源碼
1 2 3 | public View findViewById(int id) { return getDecorView().findViewById(id); } |
所以最終是從DecorView最頂層開始搜索的
新聞標(biāo)題:AndroidDecorView淺析
文章鏈接:http://jinyejixie.com/article12/jjeigc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、商城網(wǎng)站、網(wǎng)站制作、自適應(yīng)網(wǎng)站、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)