android – 使用SeekBar和setProgress不会改变seekBar的位置

前端之家收集整理的这篇文章主要介绍了android – 使用SeekBar和setProgress不会改变seekBar的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Android SeekBar set progress value6个
我在片段中使用Seekbar,需要将Seekbar移动到不同的位置.但是,setProgress(xxx)不起作用.

如何以编程方式为Seekbar触发此方法:public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser)?手动移动Seekbar工作正常.

解决方法

这是ProgressBar中的一个Bug!

如果再次传递相同的值,setProgress(…)似乎不会触发drawable上的更新.但它也不会在setMax期间触发.因此缺少更新.

为了解决这个问题,我只是在每次更新之前做一个bar.setProgress(0)…这只是一种解决方法,但它对我有用,如预期:

bar.setProgress(0); // call these two methods before setting progress.
bar.setMax(20);
bar.setProgress(20);

第二选择.

mSeekBar.post(new Runnable() {
        @Override
        public void run() {
            mSeekBar.setProgress(percentOfFullVolume);
        }
    });

它也可能适用于某人.

尝试先设置最大值,然后设置进度.

猜你在找的Android相关文章