所以我有一个控制“宽度”和“长度”的“两者” ,如下所示:Slider
Slider
Slider
<com.google.android.material.slider.Slider
android:id="@+id/width_slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:value="40"
android:valueFrom="0" <-
android:valueTo="200" <-
android:stepSize="1"/> <-
<com.google.android.material.slider.Slider
android:id="@+id/height_slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:value="40"
android:valueFrom="0" <-
android:valueTo="200" <-
android:stepSize="1"/> <-
<com.google.android.material.slider.Slider
android:id="@+id/both_slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:value="100"
android:valueFrom="0" <-
android:valueTo="200" <-
android:stepSize="1"/> <-
正如我在上面标记的,它们都有相同的范围(从 & 到)和stepSize
到 1(重要),我设置了
在两者 上加/减值 1 时
Slider
,其他两个也将加/减值 1。
代码如下:
private var previousValue = 50f //initial value, same as on xml
binding.bothSlider.addOnChangeListener { slider, value, fromUser ->
if (value > previousValue) {
binding.widthSlider.value++
binding.heightSlider.value++
}
if (value < previousValue) {
binding.widthSlider.value--
binding.heightSlider.value--
}
previousValue = value
}
奇怪的事情发生了,宽度和高度 的反应似乎Slider
有点慢(我猜),并跳过一些点:
它们应该是同步的,因为它们具有相同stepSize
的值范围(只是初始值不同)。任何帮助,将不胜感激。