先給大家展示下效果圖,如果大家感覺效果不錯(cuò),請參考實(shí)例代碼,
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)官渡免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。act2是Main2Activity,act3是Main3Activity
原理
滾動
首先我們知道每個(gè)Activity展示的內(nèi)容一般都是DecorView去承載的,不知道的看下圖,其中狀態(tài)欄背景也包括在內(nèi):
DecorView
所以我們第一步,只需要滾動DecorView內(nèi)容或者平移DecorView就行了。
使上一個(gè)Activity可見
上面的Activity不可見其實(shí)是因?yàn)楸划?dāng)前Activity給擋住了。那問題來了。
Q:為什么我把布局顏色設(shè)置成透明背景,可還是看不到上面的Activity呢?
A:看上面的DecorView那張圖,我們Activity布局只是填充content里面的內(nèi)容,也就是說我們是被ContentFrameLayout包裹住的,Activity布局文件的根元素并不是Activity的根元素,由層級可知。 我們的Activity被上層的Activity擋住,其實(shí)是因?yàn)镈ecorView具有背景顏色,我們只需要把它的背景色去掉就行了。
實(shí)現(xiàn)
第一步設(shè)置透明主題