如何使用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 -> {}
}
}
关于android - 具有rxBinding的setOnSeekBarChangeListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60372046/