Я занимаюсь разработкой приложения с использованием MVVM и успешно смог добавить простые элементы пользовательского интерфейса, такие как кнопка и ввод текста, но сейчас я пытаюсь выяснить, как связать ползунок материала .
Я читал о привязках слушателя , и хотя xml с первого взгляда позволил мне добавить следующее приложение: onChange, напоминающее addOnChangeListener, который вы увидите в моем классе «просмотр активности» (который будет работать с addOnChangeListener внутри файла kotlin, но я не могу заставить его работать с тегом direct app: onChange внутри файла xml.
Любой совет или примеры кода, чтобы указать мне в правильном направлении, будет принята с благодарностью. Спасибо.
/ * xml файл макета * /
<com.google.android.material.slider.Slider
android:id="@+id/material_slider_min_temperature"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:valueFrom="1"
android:valueTo="2"
android:stepSize="1"
app:onChange="@{(slider, value, fromUser)-> mViewModel.fireSliderMinRQ(slider,value,fromUser)}"/>
/ * посмотреть модель * /
fun fireSliderMinRQ(slider: Slider, value: Float, fromUser: Boolean){
//this will not bind correctly, i can't compile and access the parameters
}
/ * просмотреть активность * /
this.mSliderMinTemperature!!.addOnChangeListener { slider, value, fromUser ->
this.mTvMinTemperature.text = value.toInt().toString()
slider.setOnTouchListener { v, event ->
when(event.action){
MotionEvent.ACTION_UP -> {
this.mSliderMaxTemperature!!.isEnabled = true
}
}
false
}
}