多个SeekBar - 全部显示最后一个SeekBars值

时间:2013-04-03 11:24:07

标签: android progress-bar seekbar

我在一个布局中有多个SeekBars(手机上有3个,平板电脑上有8个)。 我有一个自定义拇指和背景,所以它们显示为一个比例。有一个侦听器可以检测值何时更改(每个SeekBars一个),如果它有Thumb Drawable则更改为不同的颜色。这一切都有效。

什么不起作用,是将每个SeekBar设置为保存的值。如果我设置了第一个SeekBar,那很好。如果我设置第二个和第一个,它们都显示第二个SeekBar的值。如果我添加第三个,第四个等,这是相同的。下面是我用来设置SeekBar值的代码

mSeekBarOne.setProgress(mSavedValues.value1);
mSeekBarTwo.setProgress(mSavedValues.value2);
mSeekBarThree.setProgress(mSavedValues.value3);

我不知道这里发生了什么,或者如何解决这个问题。我已经尝试在每个SeekBars设置后请求布局传递,但是不起作用。

最后,当我打印出每个SeekBars的值时,它实际上是正确的!这纯粹是一个视觉问题。也许我在文档中遗漏了多个SeekBar(或ProgressBar)不能在单个布局中的内容,但我已经搜索过并且没有发现任何内容。

非常感谢任何帮助。

编辑:如果我在每个SeekBar上设置了进度值后更改了Thumb Drawable,则只会出现此问题。我通过检查进度来更改Thumb Drawable,如果它与原始值不同,则将Thumb Drawable设置为另一个(不同的颜色)。

亚当

1 个答案:

答案 0 :(得分:0)

看来问题是我正在使用的Drawable正在课堂上缓存。因此,SeekBar在最后一次更新时显示了Drawable的位置,这是SeekBar的最后一个位置。

我认为这是我在本地缓存Drawable时误解的错误,而不是每个SeekBar使用不同的drawable。更好地解释为什么会出现这种情况会对我有所帮助,但至少可以解决这个问题。