【问题标题】:Android Kotlin - Why does a Seekbar minimum value over 100 not work?Android Kotlin - 为什么 Seekbar 最小值超过 100 不起作用?
【发布时间】:2021-06-01 21:06:31
【问题描述】:

大家好,当我向我的 Seekbar 添加一个超过 100 的最小值时,它总是显示一个最小值 100。 例如,我的最小值是 120,但它显示为 120。我发现我可以使用每个值直到 100,但我的“最小值”没有更大的值。有谁知道原因吗?

我的代码:

        myseekbar.min = 120
    myseekbar.max = 200
    
    myseekbar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
        override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
        }

        override fun onStartTrackingTouch(seekBar: SeekBar?) {
        }

        override fun onStopTrackingTouch(seekBar: SeekBar?) {
        }
    })

【问题讨论】:

  • 您是否尝试过先设置最大值,而不是先设置最小值?不知道进度条的内部结构,但由于默认最大值为 100,我猜它可能不允许您将最小值设置为最大值。
  • 我刚试过。可惜没有成功

标签: java android android-studio kotlin


【解决方案1】:

seekbar.min = 120

要求,API 级别 26 及以上。如果您在 API 级别 26+ 中进行测试,它应该可以正常工作。 以下是我的代码:

科特林

seekbar.max = 200
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    seekbar.min = 120
}

seekbar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
    override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
        seekbarValue.text = p1.toString()
    }
    override fun onStartTrackingTouch(p0: SeekBar?) {}

    override fun onStopTrackingTouch(p0: SeekBar?) {}
})

XML

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/seekbar_value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

输出:

Minimum

Maximum

【讨论】:

    猜你喜欢
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2018-10-08
    • 2012-12-04
    • 1970-01-01
    相关资源
    最近更新 更多