Kotlin - 范围搜索栏库
Posted
技术标签:
【中文标题】Kotlin - 范围搜索栏库【英文标题】:Kotlin - Range seekbar library 【发布时间】:2019-07-30 23:02:42 【问题描述】:我正在使用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
错误
【问题讨论】:
【参考方案1】:您正在创建新对象 (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
【讨论】:
谢谢!我完全忘记了在我的布局中使用我的rangeeekbar以上是关于Kotlin - 范围搜索栏库的主要内容,如果未能解决你的问题,请参考以下文章