【问题标题】:Android resizing SeekBar thumb width from maximum valueAndroid从最大值调整SeekBar拇指宽度
【发布时间】:2014-01-28 09:39:57
【问题描述】:

当 maxValue 改变时,是否有一个函数(或 XML 标记)允许动态改变 seekBar 中拇指的宽度。例如,如果 maxValue == 2,Thumb 占据整个 Seekbar 的一半,那么如果 maxValue 为 3,则占据宽度的 1/3,依此类推。

【问题讨论】:

    标签: java android xml seekbar


    【解决方案1】:

    SeekBar thumb 只能在 XML 中设置,不能动态设置。您正在寻找的类似于滚动条。可滚动的视图(如 ListView)已内置,因此您无需执行任何操作。

    【讨论】:

    • 我正在使用 SeekBar 滚动 HorizontalScrollView 。有没有办法将滚动条与 scrollView 分开设置?
    • 据我所知,Horizo​​ntalScrollView 有自己的滚动条。您为什么要尝试通过添加 SeekBar 来复制此功能?
    • 滚动条是否有边距,我不希望它占据 scrollView 的所有宽度?或者我可以改变滚动条的设计吗?
    • 您可以使用主题和样式来影响滚动条的外观。
    【解决方案2】:

    您需要以编程方式实现逻辑..通过使用 thumsize 和进度值并实现 OnSeekBarChangeListener

    如果您有任何进一步的疑问,您可以询问:)

    【讨论】:

    • 如何以编程方式更改拇指的大小?
    • @user3199577 : 使用 seekbar.setThumbOffset(int 像素);
    • 有些东西变了,我不明白到底是什么。但我没有得到我想要的:)
    • 我建议你改为创建自定义搜索栏
    • setThumbOffset 设置有多少拇指可以离开轨道的末端 - 它假设你有一个对称的拇指可绘制,但如果你不这样做,你可以排列你的可绘制和轨道
    【解决方案3】:

    如果您只针对运行 v16+ 的 Android 设备,您可以使用 getThumb().setBounds() 执行此操作,但如果您在用户触摸视图时执行此操作可能会产生后果。

    您还需要使用 setThumbOffset() 更新偏移量,传入新边界宽度的 1/2。

    你也可以用一个新的drawable替换拇指,它会为你更新偏移量(如果你有一个对称的drawable),但是调整它的边界可能会更有效。

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      相关资源
      最近更新 更多