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

标签 android android-fragments seekbar

<分区>

我在 fragment 中使用 Seekbar,需要将 Seekbar 移动到不同的位置。但是,setProgress(xxx) 不起作用。

如何以编程方式为 Seekbar 触发此方法:public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)?手动移动 Seekbar 效果很好。

最佳答案

这是 ProgressBar 中的错误!

如果再次传递相同的值,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 - 使用 SeekBar 和 setProgress 不会改变 seekBar 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313197/

相关文章:

java - ViewPager内部 fragment 返回父 fragment 时不显示

android - 从搜索栏获取百分比值?

java - Android 中的 slider 控件... SeekBar 真的是我最好/唯一的选择吗?

android - 如何在不影响 Android 边框的情况下仅更改 ProgressDialog 的背景颜色?

android - fragment 和 onConfigurationChanged

android - 如何动态创建 fragment 寻呼机适配器

android - 删除拇指并为禁用的搜索栏设置 progressTint

android - 在 android 中来自 XMPP 的联系人图像

android - Meteor+Cordova - Android 上的 "deviceready has not fired"

Android 为图像文件创建自定义 Exif 属性