天天看點

Android實作SwipeBack(右滑退出)效果

Android實作SwipeBack(右滑退出)效果
Android實作SwipeBack(右滑退出)效果
Android實作SwipeBack(右滑退出)效果

這是目前實作在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

繼續閱讀