[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,/手動滑稽