1. 程式人生 > >[Android開發] Rxjava2之路: Rxbinding2(支援基於Rxjava2)

[Android開發] Rxjava2之路: Rxbinding2(支援基於Rxjava2)

支援Rxjava2的Rxbinding已經在2017年3月6號更新,你只需要依賴以下程式碼即可,預設Rxjava版本為2.0.2,RxAndroid為2.0.0:

compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'

本貼作廢。

一、啥是Rxbinding

RxBinding 是 Jake Wharton 的一個開源庫,它提供了一套在 Android 平臺上的基於 RxJava的 Binding API。所謂 Binding,就是類似設定 OnClickListener 、設定 TextWatcher 這樣的註冊繫結物件的API,對普通的控制元件,V4,V7等等做了相應的支援。

在Rxbinding的基礎上可以很方便的實現很多功能,例如:快點點選兩次只取一次、長按事件監聽、編輯框快速輸入時候不搜尋等等功能。 具體栗子看操作符

二、Rxbinding1.x的使用

這種導包方式是使用的Rxjava1.1.5版本的。 不支援Rxjava2。

不用導Rxjava、RxAndroid,只需要匯入Rxbinding就會自動幫你匯入Rxjava和RxAndroid

一般導包:

compile 'com.jakewharton.rxbinding:rxbinding:0.4.0'

要使用支援support-v4的View就要導包:

compile 'com.jakewharton.rxbinding:rxbinding-support-v4:0.4.0'

要使用支援’appcompat-v7就要導包:

compile 'com.jakewharton.rxbinding:rxbinding-appcompat-v7:1.0.0'

要使用支援’design型別的View就要導包:

compile 'com.jakewharton.rxbinding:rxbinding-design:1.0.0'

三、Rxbinding2的使用

Jake Wharton大牛一直默默更新, 其實原始碼已經是支援Rxjava2的了,但是沒有發版。所以要使用Rxbinding2 就自己下載原始碼回來使用依賴庫的形式使用。

3.1 下載原始碼

下載原始碼方法1:

下載zip打包的原始碼,在介面Clone or download -> Download ZIP

下載原始碼方法2:
(需要電腦已經配置了Git)

直接在Andriod Studio -> File -> New -> Project from Version Control -> Github,然後在位址列填入https://github.com/JakeWharton/RxBinding.git,clone即可。

3.2 提取Rxbinding包

自己建立一個專案,把rxbinding複製拷貝到自己的專案根目錄。修改rxbinding的build.gradle,為下面的樣子:

當然buildToolsVersion那些版本號看你自己的sdk。

apply plugin: 'com.android.library'
android {
  compileSdkVersion 25
  buildToolsVersion "25.0.2"


  defaultConfig {
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
  }

}

dependencies {

    compile 'com.android.support:support-annotations:25.1.1'

    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    //compile 'io.reactivex:rxandroid:1.1.0'
    // Because RxAndroid releases are few and far between, it is recommended you also
    // explicitly depend on RxJava's latest version for bug fixes and new features.
    compile 'io.reactivex.rxjava2:rxjava:2.0.6'

}

然後依賴到你的app module,在setting.gradle新增rxbinding的module名字:

include ':app', ':rxbinding'

再在app module的builde.gradle依賴裡面新增

    compile project(':rxbinding')

重新Sync即可。這樣子你就可以在你的app moudle裡面使用你Rxbinding2了,支援Rxjava2的噢。。。

提取v4的包需要依賴:

    compile 'com.android.support:support-core-ui:25.1.1'

提取v7的包需要依賴:

    compile 'com.android.support:appcompat-v7:25.1.1'

提取design的包需要依賴:

    compile 'com.android.support:design:25.1.1'

四、Rxbinding2all總包

Rxbingding分的包太多了,這裡我把全部搞成了一個module,直接匯入一個依賴庫即可使用全部View。 但是如果你用的只是簡單的控制元件就不用導全包啦,這樣增加的體積大概會增加300k。

(ps: leanback沒有整合,因為這貨是搞電視的)

1、直接把下載回來的檔案解壓放到你的專案根目錄,然後在setting.gradle新增rxbinding,

include ':app', ':rxbinding2all'

2、 再在app module的builde.gradle依賴裡面新增

    compile project(':rxbinding2all')

3、 把你的app module的suppert-v4、design、appcompat-v7、support-annotations、Rxjava、RxAndroid 的依賴刪掉

4、 然後重新Sync即可

然後就可以愉快的使用Rxbinding2和Rxjava2,/手動滑稽