Android 带有rxBinding的setOnSeekBarChangeListener

Android 带有rxBinding的setOnSeekBarChangeListener,android,kotlin,seekbar,rx-binding,Android,Kotlin,Seekbar,Rx Binding,如何使用rxBinding调用setOnSeekbarchaneListener 我的代码: view?.seekBarDisplay?.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromus

如何使用rxBinding调用
setOnSeekbarchaneListener

我的代码:

    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发生任何更改时通知您

  • SeekBar.userChanges()
    :仅当用户自身对SeekBar发生任何更改时通知您

  • SeekBar.systemChanges()
    :仅当系统对SeekBar发生任何更改时通知您

  • 您可以订阅这些函数作为其他常见的观察值

    以下是第一种方法的示例:

    yourSeekBar.changes()
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe { seekBarChangeEvent ->
                when (seekBarChangeEvent) {
                    is SeekBarProgressChangeEvent -> {}
                    is SeekBarStartChangeEvent -> {}
                    is SeekBarStopChangeEvent -> {}
                }
            }