這是目前實作在segmentfault for android v2.6中的效果。
一切一切的之前,感謝 ikew0ng/swipebacklayout
我使用這個庫,并經過一些修改,支援了android 4.0以上所有的版本。
我們來分析下<code>swipebacklayout</code>的源碼
我之前做過實驗,碰到的最大問題是上層的activity底下并不是透明的,是以看不見下層activity的視圖。
在<code>swipebacklayout</code>中采用的方案是使用一個叫<code>converttotranslucent</code>的未公開的api,再配合<code>theme</code>中
把<code>windowistranslucent</code>設定為<code>true</code>,即可實作上層的<code>window</code>背景為透明。
這裡要注意的地方是調用<code>converttotranslucent</code>可以使用反射的方法進行調用,但是在<code>lollipop</code>中,它的參數變成了兩個,而在5.0以下是一個參數,是以需要在源碼中對<code>util.convertactivitytotranslucent</code>這個方法進行一些修改。
使得能适配4.0 - 5.0+所有的裝置
轉自:https://segmentfault.com/a/1190000002977515