【问题标题】:How to create Binding Adapter for material.Slider(range) view?如何为 material.Slider(range) 视图创建绑定适配器?
【发布时间】:2021-10-18 08:48:27
【问题描述】:

我找到了一个带有一个拇指的solution for material.Slider,但我需要相同的范围滑块。我需要从滑块中获取最小值和最大值。 如何使用 bindingAdapter 从范围滑块中获取值?

【问题讨论】:

    标签: android kotlin material-design android-databinding


    【解决方案1】:

    您可以使用LiveData。因此,您的 bindingAdapter 将如下所示。

    @BindingAdapter("onChange")
    fun bindOnChange(rangeSlider: RangeSlider, onChangeLiveData: MutableLiveData<Float>) {
        rangeSlider.addOnChangeListener(RangeSlider.OnChangeListener { _, value, _ ->
            onChangeLiveData.postValue(value)
        })
    }
    

    你可以用这个

    <com.google.android.material.slider.RangeSlider
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:onChange="@{passYourOnChangeMutableLiveDataHere}"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
    

    【讨论】:

    • 拜托,你能分享一下 RangeSlider 的 liveData 的例子吗(它必须有 2 个值 min/max)?
    • 您的建议有效,但当我需要一个范围(从 X 到 Y)时,livedata 只获得一个值(上次更改)
    • @user14729932 抱歉我没关注?您想要以前的值和更改后的值吗?
    • 我已将您的答案更正为它应该工作的方式。谢谢,您的建议帮助解决了我的问题。
    • @user14729932 我看到了你的编辑。我建议您使用Pair 而不是List
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2023-03-14
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多