先給大家展示下效果圖,如果大家感覺效果不錯(cuò),請參考實(shí)例代碼,
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è)置透明主題