android - 具有rxBinding的setOnSeekBarChangeListener

标签 android kotlin seekbar rx-binding

如何使用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():订阅此可观察的内容,当onProgressChangedonStartTrackingTouchonStopTrackingTouch方法被调用时,您会收到通知。
  • 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/

    相关文章:

    Android Studio 未检测到构建/运行时的代码更改(

    java - Android Edittext - 输入负数 numberDecimal|numberSigned

    android - 尝试匹配微调器和文本字段的文本内容,但 'withText' 和 'withSpinnerText' 正在返回有关组件的数据

    android、seekbar drawable,id/background、id/secondaryProgress 和 id/progress 代表什么?

    java - 如何设置一个长整数的SeekBar进度? (或替代品)

    android - 将 Progress/Seekbar 比例更改为非线性(例如对数)

    android - 增强(/操纵)一些流行的 Android 应用程序的文本(/视觉)输出! (例如 : whatsapp, gmail, facebook, ...)

    java - Gradle 项目 - 可以构建但不能运行它

    list - 在 Kotlin 中对 MutableList 中的数据进行排序

    android - 需要 personFields 掩码。请指定一个或多个有效路径