You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anko DSL中SeekBar自定义样式显示异常问题求助

Anko DSL SeekBar显示异常问题解决方案

我之前也碰到过一模一样的问题!用Anko DSL直接创建SeekBar时,进度条的显示效果总是乱糟糟的,直到对比了XML布局的写法才找到根源。

问题原因分析

你看XML版的seek_lay.xml里,给SeekBar设置了android:maxHeight="2dp"和android:minHeight="2dp"这两个关键属性,但Anko DSL的代码里完全漏掉了它们。默认情况下,SeekBar的高度会自适应thumb的尺寸,导致进度条被拉伸得很高,自然就显得很怪异。

修复后的Anko DSL代码

只需要在DSL代码里补上这两个高度限制属性,就能和XML布局的显示效果完全一致:

seekBar {
    max = 2
    progress = 1
    // 新增进度条高度控制属性
    maxHeight = dip(2)
    minHeight = dip(2)
    progressDrawable = drawable(R.drawable.seek_bar_progress)
    thumb = drawable(R.drawable.seek_bar_thumb)
    onSeekBarChangeListener {
        onProgressChanged { _, progress, _ -> // 业务逻辑 }
    }
}.lparams(matchParent) {
    setMargins(dip(16), dip(8), dip(16), dip(8))
}

加上maxHeight和minHeight后,进度条的高度被固定住,thumb也能正常对齐在进度条上方,不会再出现布局错乱的情况。

内容的提问来源于stack exchange,提问作者Alexandr Minkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:32:27