一. 预览效果
二. 开发需求
用户注册登录等表单校验场景下,只有账号和密码内容都不为空的情况下,按钮才可点击并实现按钮背景变化。
三. 实现
1. 依赖
// rxbinding3 内部已添加rxjava依赖
implementation "com.jakewharton.rxbinding3:rxbinding:3.0.0"
2. Rxjava操作符之combineLatest
combineLatest 操作符用来将多个Observable发射的数据组装起来然后在发射. 通过Func类来组装多个Observable发射的数据, 等到最后一个Observable发射数据了, 然后把所有发射的数据交给Fun进行组合, 然后把组合后的数据发射出去.
3. 具体实现
话不多说,直接上代码:
kotlin :
// 1.继承TextWatcher
class EditTextMonitor(private val mPublishSubject: PublishSubject<String>) : TextWatcher {
override fun beforeTextChanged(
s: CharSequence,
start: Int,
count: Int,
after: Int
) {
}
override fun onTextChanged(
s: CharSequence,
start: Int,
before: Int,
count: Int
) {
}
override fun afterTextChanged(s: Editable) {
mPublishSubject.onNext(s.toString