Kotlin - 范围搜索栏库
Kotlin - Range seekbar library
我正在使用 syedowaisali 的 Range Seekbar,但我无法根据拇指在栏上的位置更改 TextView。
我的 Activity 的 onCreate
中有以下内容:
val rangeSeekbar = CrystalRangeSeekbar(this)
rangeSeekbar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
tv_rent_time_range.text = maxValue.toString()
}
tv_rent_time_range
使用 maxValue
加载,但当我移动右手拇指时它不会改变
在他的文档中(在 Java 中)应该是这样的:
rangeSeekbar.setOnRangeSeekbarChangeListener(new OnRangeSeekbarChangeListener() {
@Override
public void valueChanged(Number minValue, Number maxValue) {
tvMin.setText(String.valueOf(minValue));
tvMax.setText(String.valueOf(maxValue));
}
});
我感觉我在 Kotlin 中设置了 setOnRangeSeekbarChangeListener
错误
您正在创建新对象 (val rangeSeekbar = CrystalRangeSeekbar(this)
),而不是使用展开布局中的视图。您可以只使用:
rangeSeekbar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
// Do something there
}
对于来自 Android SDK 的 SeekBar
,您可以从 setOnSeekBarChangeListener
.
接收更新
对于来自 Android SDK 的 CrystalRangeSeekbar
,您可以从 setOnRangeSeekbarChangeListener
.
接收更新
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.SeekBar
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupUi()
}
private fun setupUi() {
// Regular SeekBar (from Android SDK)
seek_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
// Update text here
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
}
})
crystal_range_seek_bar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
// Update text here
}
}
}
我正在使用 syedowaisali 的 Range Seekbar,但我无法根据拇指在栏上的位置更改 TextView。
我的 Activity 的 onCreate
中有以下内容:
val rangeSeekbar = CrystalRangeSeekbar(this)
rangeSeekbar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
tv_rent_time_range.text = maxValue.toString()
}
tv_rent_time_range
使用 maxValue
加载,但当我移动右手拇指时它不会改变
在他的文档中(在 Java 中)应该是这样的:
rangeSeekbar.setOnRangeSeekbarChangeListener(new OnRangeSeekbarChangeListener() {
@Override
public void valueChanged(Number minValue, Number maxValue) {
tvMin.setText(String.valueOf(minValue));
tvMax.setText(String.valueOf(maxValue));
}
});
我感觉我在 Kotlin 中设置了 setOnRangeSeekbarChangeListener
错误
您正在创建新对象 (val rangeSeekbar = CrystalRangeSeekbar(this)
),而不是使用展开布局中的视图。您可以只使用:
rangeSeekbar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
// Do something there
}
对于来自 Android SDK 的 SeekBar
,您可以从 setOnSeekBarChangeListener
.
对于来自 Android SDK 的 CrystalRangeSeekbar
,您可以从 setOnRangeSeekbarChangeListener
.
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.SeekBar
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupUi()
}
private fun setupUi() {
// Regular SeekBar (from Android SDK)
seek_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
// Update text here
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
}
})
crystal_range_seek_bar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
// Update text here
}
}
}