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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...