水平进度条:在确定和不确定之间切换
我试图在两种模式之间切换 SeekBar
以显示流媒体的状态。
我已经确定,在 XML 中定义 android:independent
标记时会显示正确的图形:
<SeekBar
android:id="@+id/seekBar1"
android:indeterminate="false"
android:progressDrawable="@android:drawable/progress_horizontal"
android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
android:indeterminateBehavior="cycle"
android:indeterminateOnly="false"
android:progress="33"
android:secondaryProgress="66"
android:layout_height="wrap_content"
android:layout_width="match_parent"></SeekBar>
问题是,当尝试通过调用 setIndependent(true)
进行切换时,可绘制对象似乎没有正确更改。在不确定->确定的情况下,动画停止,在确定->不确定的情况下,什么也不会发生。
我做错了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我遇到了同样的问题,我通过调用 postInvalidate() 强制视图刷新来解决它。
我使用的是 Android 2.3.4。
I have had the same problem and I solved it by calling postInvalidate() to force the view refresh.
I'm on Android 2.3.4.
SeekBar onSizeChanged() 仅初始化当前选定的背景可绘制对象,并在初始化 SeekBar 时调用一次。
所以修复可能是:
在布局 xml 中使用
这看起来不太好,可能还有其他解决方法,但我认为这是主要问题(bug?)。
The SeekBar onSizeChanged() initializes only the current selected background drawable, and it is called once when the SeekBar is initialized.
So a fix might be:
And in the layout xml use
<yourpackage.CorrectedSeekBar ...
This doesnt look nice, other workarounds might be possible but I think this is the main problem (bug?).
那么,只需将 pd 设置为不确定,只需切换其背景即可。如果您想要可绘制动画,那么我建议在这里查看 TransitionDrawable: TransitionDrawable< /a>.所以它的用途是实际添加 2 个不同的可绘制对象并为它们的过渡设置动画。我认为这应该适合你的情况。但我没有在进度对话框中执行此类操作的经验,所以我无法真正判断。
Well instead setting the pd to indeterminate just switch its background. if you want drawable animations then i suggest to look into the TransitionDrawable here: TransitionDrawable. so the use of it is to actually add 2 different drawables and animate their transition. i think that should work for your case. but i don't have experience doing something like this on a progress dialog so i cant really tell.
解决方案实际上非常简单,与启动动画可绘制对象所使用的技巧相同。此问题似乎仅影响 Android 2.3(也可能影响旧版本的 Android)。
每当你想设置:
使用这部分代码代替:
The solution is actually very simple, the same trick you have to use to start an animated drawable. This issue only seems to affect Android 2.3 (maybe also older versions of Android).
whenever you want to set:
use this part of code instead: