十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
前言
首次通過右滑來返回到上一個頁面的操作是在 IOS7上出現(xiàn)。到目前android應用上支持這種操作的依然不多。分析其主要原因應該是android已有實體的返回按鍵,這樣的功能變得不重要,但我覺得有這樣的功能便于單手操作,能提升app的用戶體驗,特別是從ios轉到android的用戶。寫這篇博文希望可以對大家有所幫助,希望自己的app上有滑動返回功能的可以參考下。
原理的簡單描述
Android系統(tǒng)里有很多滑動相關的API和類,比如ViewDragHelper就是一個很好的滑動助手類。首先設置Window的背景為透明,再通過ViewDragHelper對Activity上DecorView的子view進行滑動,當滑動到一定距離,手指離開后就自動滑到最右側,然后finish當前的activity,這樣即可實現(xiàn)滑動返回效果。為了能夠 “全局的”、“聯(lián)動的” 實現(xiàn)滑動返回效果,在每個activity的DecorView下插入了SwipeBackLayout,當前activity滑動和下層activity的聯(lián)動都在該類中完成。
效果圖
布局圖
實現(xiàn)主要類:
SwipeBackActivity //滑動返回基類
SwipeBackLayout //滑動返回布局類
SwipeBackLayoutDragHelper //修改ViewDragHelper后助手類
TranslucentHelper //代碼中修改透明或者不透明的助手類
##代碼層面的講解
一. 設置activity為透明、activity跳轉動畫(TranslucentHelper 講解)
這個看起來很簡單,但如果要兼容到API16及以下,會遇到過一個比較麻煩的頁面切換動畫問題:
1.1、通過activity的主題style進行設置
- @color/transparent
- true
``` **遇到問題:**如果在某個activity的主題style中設置了android:windowIsTranslucent屬性為true,那么該activity切換動畫與沒設置之前是不同的,有些手機切換動畫會變得非常跳。所以需要自定義activity的切換動畫。 接下來我們會想到通過主題style里的windowAnimationStyle來設置切換動畫