Slidr使用詳解,Android手指滑動返回Activity
概述
我們都知道IOS系統自帶手指滑動可以返回當前介面,現在我們使用Slidr可以很簡單的實現這些功能,而且可以做一些個性化得定製.
Slidr使用
1 首先清單檔案配置我們將要滑動Activity的theme,或者在我們的Application節點下全域性配置theme,在theme裡面新增
<!--切換activity時螢幕不變暗-->
<item name="android:windowIsTranslucent">true</item>
<!--視窗的背景設定成透明 ,這樣的話在我們每個介面的根佈局都要設定background,要不然就是透明的-->
<item name="android:windowBackground">@android:color/transparent</item>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width ="match_parent"
android:layout_height="match_parent"
android:background="@color/background_material_light">
2.在要滑動的Activity中OnCreate方法中使用,有三種方式
Slidr.attach(this);
Slidr.attach(this,slidrConfig);
Slidr.attach(this,statusBarColor1,statusBarColor2);
對,就簡單的一行程式碼就可以實現手指滑動退出當前的Activity.
- 方式1 : 直接綁定當前的Activity,這種方式一般不適用,下面介紹,這個預設的是向左滑退出Activity
- 方式2 : 配置一些引數config, 這個最常用
- 方式3 : 預設的向左滑退出Activity,同時滑動時狀態列有漸變顏色,statusBarColor2是漸變開始的顏色,statusBarColor1漸變結束的顏色,滑動結束時狀態列顏色恢復系統預設的顏色,所以開始的時候我們可以設定狀態列的顏色為statusBarColor1
3.SlidrConfig的使用,可以定製化我們滑動的手勢或者介面的互動等.
SlidrConfig config = new SlidrConfig.Builder()
.primaryColor(getResources().getColor(R.color.primary)
.secondaryColor(getResources().getColor(R.color.secondary)
.position(SlidrPosition.LEFT|RIGHT|TOP|BOTTOM|VERTICAL|HORIZONTAL)
.sensitivity(1f)
.scrimColor(Color.BLACK)
.scrimStartAlpha(0.8f)
.scrimEndAlpha(0f)
.velocityThreshold(2400)
.distanceThreshold(0.25f)
.edge(true|false)
.edgeSize(0.18f)
.listener(new SlidrListener(){...})
.build();
SlidrConfig是通過builder方式來設定某項引數,其中可以全部設定,也可以單獨設定某項需要定製的,下面來解釋一下每一個引數的含義:
- primaryColor : 滑動時狀態列漸變結束的顏色
- secondaryColor : 滑動時狀態列漸變開始的顏色
- position : 設定滑動時起始方向,可以同時設定多個,比如設定left,意思是從左向右滑
- sensitivity : 響應的敏感度,0-1f,預設值是1f
- scrimColor : 滑動時acitvity之間的蒙層顏色,預設是黑色
- scrimStartAlpha : 滑動開始時Activity之間蒙層顏色的透明度,0-1f,預設值0.8f
- scrimEndAlpha : 滑動結束時Activity之間蒙層顏色的透明度,0-1f,預設值0f
- velocityThreshold : 滑動時移動速度閾值,超過這個值會響應滑動事件
- distanceThreshold : 滑動時手指移動距離佔螢幕百分比的閾值,超過這個值才響應事件
- edge : boolean型別,是否設定響應事件的邊界,預設是false,沒有邊界,滑動任何地方都有響應
- edgeSize : 邊界的大小佔螢幕的百分比,0-1f ,這時要看positon的方向,比如position是left,edgeSize是0.2f,意思就是邊界的大小等於距離螢幕左邊界佔螢幕20%的大小
Slidr應用
Slidr的使用很簡單,但需要注意的是他的滑動事件是最高階的,能搶奪一切事件,這時如果我們的專案中有ViewPager
或者RecyclerView
,他們的滑動事件都被搶奪走了 ,如果這樣使用,我們滑動時都會退出當前的Activity,如果我們要處理事件,感覺非常的麻煩,這時我們為Slidr
設定config來控制他的響應事件,比如控制速度,手指滑動的距離才來響應Slidr
事件,我寫了兩個demo,都是用edgeSize
來控制的,
ViewPagerDemo效果圖
配置程式碼
private void initSlidr() {
SlidrConfig config=new SlidrConfig.Builder()
.position(SlidrPosition.LEFT)//滑動起始方向
.edge(true)
.edgeSize(0.18f)//距離左邊界佔螢幕大小的18%
.build();
Slidr.attach(this,config);
}
RecyclerViewDemo效果圖
配置程式碼
private void initSlidr() {
SlidrConfig config=new SlidrConfig.Builder()
.position(SlidrPosition.TOP)//滑動起始方向
.edge(true)
.edgeSize(0.3f)//邊界佔螢幕大小30%
.build();
Slidr.attach(this,config);
}
後語
Slidr的使用很簡單,而且實現的效果也很棒,不影響原來Activity的生命週期,我比較喜歡,在我們的使用過程中,可以使Activity滑動退出的方向和Activity進場的方向動畫設定相反的方向,這樣體驗也比較好,看我的gif圖也做了這樣的效果,同時也可以研究一下5.0之後Activity的轉場動畫配合Slidr使用,效果更佳,上面第二張gif圖用的就是5.0之後的動畫,寫這篇部落格也是本著推薦的態度,大家快引用到你們的專案之中吧!!
Demo原始碼
相關推薦
Slidr使用詳解,Android手指滑動返回Activity
概述 我們都知道IOS系統自帶手指滑動可以返回當前介面,現在我們使用Slidr可以很簡單的實現這些功能,而且可以做一些個性化得定製. Slidr使用 1 首先清單檔案配置我們將要滑動Activity的theme,或者在我們的Applicati
詳解 Android 的 Activity 組件
lag 基本 詳細說明 email tco use you 鎖定 多態 本文詳細介紹了 Android 應用編程中 Activity 的生命周期、通信方式和 Intent Filter 等內容,並提供了一些日常開發中經常用到的關於 Activity 的技巧和方法
Android觸控式螢幕事件派發機制詳解與原始碼分析三(Activity篇)
PS一句:最終還是選擇CSDN來整理髮表這幾年的知識點,該文章平行遷移到CSDN。因為CSDN也支援MarkDown語法了,牛逼啊! 【工匠若水 http://blog.csdn.net/yanbober】 該篇承接上一篇《Android觸控式螢幕事件派發機制詳解與原始碼分析
Android Fragment詳解(五):Fragment與Activity通訊
與activity通訊儘管fragment的實現是獨立於activity的,可以被用於多個activity,但是每個activity所包含的是同一個fragment的不同的例項。Fragment可以呼叫getActivity()方法很容易的得到它所在的activity的物件,
詳解Android數據存儲技術
應用 接收 delete gets 數據庫版本 data文件夾 upgrade 占位符 講解 前言 學習Android相關知識,數據存儲是其中的重點之一,如果不了解數據,那麽讓你跟一款沒有數據的應用玩,你能玩多久呢?答案是這和沒有手機幾乎是差不多的。我們聊QQ,聊微信,看
詳解Android/IOS平臺下抓包工具使用以及抓取API介面
抓包工具 Charles 主機允許代理模式 客戶端設定代理 截獲資料包 HTTPS 模仿一個app
詳解Android SDK 目錄和作用
Android SDK 目錄和作用的分析詳解 1、add-ons這裡面儲存著附加庫,比如GoogleMaps,當然你如果安裝了OphoneSDK,這裡也會有一些類庫在裡面。 2、docs這裡面是Android SDKAPI參考文件,所有的API都可以在這裡查到。 3、market_lic
詳解Android View的事件體系 之View基礎(二)
前言 掌握View的事件體系是Android 向高階邁向的必經之路,本片部落格講解Android View的相關基礎知識第二部分,後面我們會為大家講解View事件體系、View事件分發等知識內容。View相關知識第一部分https://blog.csdn.net/huangliniqng/a
Android使用Cordova系列詳解-android專案整合Cordova模組
Cordova簡介 在客戶端app開發的過程中,許多變動的業務需要前端來處理,隨著業務的不斷變動,前端和客戶端需要支援複雜的互動來滿足業務的增長. 如今大部分的app都有自己的前端和客戶端互動框架,大公司都會自己開發搭建JSBridge來滿足,也有一些開
詳解Android Selinux 許可權及問題
由於現做的是MTK平臺,原始碼路徑基於MTK, 不過高通大同小異 說明 Android 5.0以後完全引入了 SEAndroid/SELinux 安全機制,這樣即使擁有 root 許可權或 chmod 777 ,仍然無法再JNI以上訪問核心節點。 其實在 Android 4.4 就有限制
詳解Android中的build.gradle檔案
一、什麼是Gradle 簡單的說,Gradle是一個構建工具,它是用來幫助我們構建app的,構建包括編譯、打包等過程。我們可以為Gradle指定構建規則,然後它就會根據我們的“命令”自動為我們構建app。Android Studio中預設就使用Gradle來完成應用的構建。有些同學可能會有疑問:”我用AS不記
詳解Android Studio Git分支實踐
新公司有些專案是用的 Git,以前公司都是 svn,為了練手 Git,我個人 APP 用到了,但是僅簡單的 git pull/push 的使用,並未用到 Git 精髓,只有當專案中用到,才會緊迫去全面學習,所以說,在專案中進步是最快的。 開發場景:遠端有主分支 mast
詳解Android介面Interface的使用和意義
本文介紹是Android的一個重要的東西,介面Interface,詳解兩個方面: (1)Java是繼承的,介面Interface是可以多個的,恰恰彌補了這個缺點。 (2)回撥,介面Interface裡面的是抽象方法,需要回調進行相應操作。 通俗地講講上面兩點講的是什麼(懂了就不用看了,
詳解Android View的事件體系 之View基礎(一)
前言 掌握View的事件體系是Android 向高階邁向的必經之路,本片部落格講解Android View的相關基礎知識第一部分,後面我們會為大家講解基礎知識第二部分、VIew事件體系、View事件分佈等知識內容。 1.View基礎 1.1 什麼是View 簡單的說V
AlarmManager詳解:android中的定時任務
1.概述 AlarmManager通常用途是用來開發手機鬧鐘,但是AlarmManager的用處並只是這個。AlarmManager其實是一個全域性定時器,它可以在指定時間或指定週期啟動其他元件,在特定的時刻為我們廣播一個指定的Intent。簡單的說就是我們設
詳解Android劉海屏適配
Apple一直在引領設計的潮流,自從 iPhone X 釋出之後,”劉海屏” 就一直存在爭議,本以為是一個美麗的錯誤(Bug),卻早就了一時間“劉海屏”的模仿潮。目前,國內已經推出的劉海屏”手機有 OPPO R15 和 華為 P20,並且Google也在IO大會
詳解Android Drawable
1 Drawable概述 Drawable是一種影象的概念,但又不全是圖片,也可能是各種顏色組合而成的影象。通常將Drawable作為View的背景,而這些Drawable我們一般通過XML來定義,當
詳解Android中回撥機制與RecyclerView的Item點選事件實現
總是看書上寫著回調回調,以為就是函式呼叫換了個名字,尤其是看了Button的點選事件實現後,覺得不就是觸發機制。 A事件發生->後臺處理邏輯->告訴前臺怎麼做->結束。 Android常見button點選事件: loginB
詳解Android廣播機制
謹以文章記錄學習歷程,如有錯誤還請指明。 前言 我們上學時都有過這樣的經歷,當我們在火車站列車候車室中等待時,每當有某次列車開始檢票或者進站上車時,就會播放通知來告知在候車室等待的人們該訊息。 為了便於進行系統級別的訊息通知,Android引入
詳解Android動畫之Tween Animation
轉載地址:http://blog.csdn.net/liuhe688/article/details/6660823 前面講了動畫中的Frame動畫,今天就來詳細講解一下Tween動畫的使用。 同樣,在開始例項演示之前,先引用官方文件中的一段話: