多个搜索栏 - 全部显示最后一个搜索栏值



我在一个布局中有多个搜索栏(手机上有3个,平板电脑上有8个)。我有一个自定义的拇指和背景,所以他们显示为一个比例。有一个侦听器来检测值何时被更改(每个seekbar都有一个),如果有的话,Thumb Drawable会被更改为不同的颜色。

不工作的是将每个搜索栏设置为保存值。如果我设置第一个搜索栏,没问题。如果我设置第二个和第一个,它们都显示第二个SeekBar的值。如果我加上第三个,第四个,等等,结果都是一样的。下面是我用来设置SeekBar值

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

我不知道这里发生了什么,或者如何解决这个问题。我已经尝试在每个搜索栏设置后请求布局通过,但不工作。

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

任何帮助都将是非常感激的。

编辑:只有当我在每个搜索栏上设置进度值后改变拇指绘制时,才会出现这个问题。我通过检查进度来改变Thumb Drawable,如果它与原始值不同,那么将Thumb Drawable设置为另一个值(不同的颜色)。

亚当

问题似乎是我正在使用的Drawable被缓存在类中。因此,在最后一次更新时,SeekBar显示的是Drawable的位置,也就是最后一个SeekBar位置。

我认为这是我在本地缓存Drawable时的错误,而不是每个searchbar使用不同的Drawable。一个更好的解释为什么会出现这种情况会帮助我很多,但至少它是固定的。

最新更新