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