带有 rxBinding 的 setOnSeekBarChangeListener
setOnSeekBarChangeListener with rxBinding
如何使用 rxBinding 调用 setOnSeekBarChangeListener
?
我的代码:
view?.seekBarDisplay?.setOnSeekBarChangeListener(object :
SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar,
progress: Int, fromuser: Boolean) {
val backLightValue = (progress / 100f)
val layoutParams = activity?.window?.attributes
layoutParams?.screenBrightness = backLightValue
activity?.window?.attributes = layoutParams
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
随着 RxBinding 4.0 的发布,您有 4 个选项来使用它来实现 Seekbar:
SeekBar.changeEvents()
:通过订阅此可观察对象,您将在 onProgressChanged
、onStartTrackingTouch
和 onStopTrackingTouch
方法被调用时收到通知.
SeekBar.changes()
: 仅当搜索栏发生任何变化时通知您。
SeekBar.userChanges()
:仅当用户自己对搜索栏进行任何更改时通知您。
SeekBar.systemChanges()
: 仅当系统对搜索栏进行任何更改时通知您。
您可以像订阅其他常用的 Observable 一样订阅这些函数。
这是第一种方法的示例:
yourSeekBar.changes()
.observeOn(AndroidSchedulers.mainThread())
.subscribe { seekBarChangeEvent ->
when (seekBarChangeEvent) {
is SeekBarProgressChangeEvent -> {}
is SeekBarStartChangeEvent -> {}
is SeekBarStopChangeEvent -> {}
}
}
如何使用 rxBinding 调用 setOnSeekBarChangeListener
?
我的代码:
view?.seekBarDisplay?.setOnSeekBarChangeListener(object :
SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar,
progress: Int, fromuser: Boolean) {
val backLightValue = (progress / 100f)
val layoutParams = activity?.window?.attributes
layoutParams?.screenBrightness = backLightValue
activity?.window?.attributes = layoutParams
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
随着 RxBinding 4.0 的发布,您有 4 个选项来使用它来实现 Seekbar:
SeekBar.changeEvents()
:通过订阅此可观察对象,您将在onProgressChanged
、onStartTrackingTouch
和onStopTrackingTouch
方法被调用时收到通知.SeekBar.changes()
: 仅当搜索栏发生任何变化时通知您。SeekBar.userChanges()
:仅当用户自己对搜索栏进行任何更改时通知您。SeekBar.systemChanges()
: 仅当系统对搜索栏进行任何更改时通知您。
您可以像订阅其他常用的 Observable 一样订阅这些函数。
这是第一种方法的示例:
yourSeekBar.changes()
.observeOn(AndroidSchedulers.mainThread())
.subscribe { seekBarChangeEvent ->
when (seekBarChangeEvent) {
is SeekBarProgressChangeEvent -> {}
is SeekBarStartChangeEvent -> {}
is SeekBarStopChangeEvent -> {}
}
}