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_rangemaxValue 一起加载,但当我移动右手拇指时它不会改变

在他的文档(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 - 范围搜索栏库的主要内容,如果未能解决你的问题,请参考以下文章

为什么Kotlin打印声明不需要范围说明?

Kotlin:如何从范围返回一些值?

Kotlin - 在索引范围内的 IntArray 中查找最小值

Kotlin:协程范围与协程上下文

Kotlin学习笔记-----取值范围和循环

kotlin基础 常见容器的取值范围