参见英文答案 >
Android SeekBar set progress value6个
我在片段中使用Seekbar,需要将Seekbar移动到不同的位置.但是,setProgress(xxx)不起作用.
我在片段中使用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); } });
它也可能适用于某人.
尝试先设置最大值,然后设置进度.