1. 程式人生 > >Slidr使用詳解,Android手指滑動返回Activity

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效果圖

ViewPagerDemo效果圖

配置程式碼

  private void initSlidr() {
        SlidrConfig config=new SlidrConfig.Builder()
                .position(SlidrPosition.LEFT)//滑動起始方向
                .edge(true)
                .edgeSize(0.18f)//距離左邊界佔螢幕大小的18%
                .build();
        Slidr.attach(this,config);
    }

RecyclerViewDemo效果圖

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

AndroidActivity 組件

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動畫的使用。 同樣,在開始例項演示之前,先引用官方文件中的一段話: