Android 使进度条立即覆盖在VideoView显示上

Android 使进度条立即覆盖在VideoView显示上,android,android-videoview,android-progressbar,Android,Android Videoview,Android Progressbar,我在RelativeLayout中有一个ProgressBar和一个VideoView,ProgressBar按z顺序浮动在VideoView之上(在XML中位于它之后)。ProgressBar是不确定的。切换视频源时,通过将其可见性设置为View.VISIBLE,我将显示进度条,直到播放新视频。我在UI线程中执行此操作 但是我的ProgressBar不会立即显示,尽管我的日志语句(也在UI线程中,在setVisibility()调用之前)会立即出现。这需要几(2或3)秒。我已经尝试了很多方法来

我在RelativeLayout中有一个ProgressBar和一个VideoView,ProgressBar按z顺序浮动在VideoView之上(在XML中位于它之后)。ProgressBar是不确定的。切换视频源时,通过将其可见性设置为View.VISIBLE,我将显示进度条,直到播放新视频。我在UI线程中执行此操作

但是我的ProgressBar不会立即显示,尽管我的日志语句(也在UI线程中,在setVisibility()调用之前)会立即出现。这需要几(2或3)秒。我已经尝试了很多方法来让ProgressBar立即显示,但是我的想法已经没有了

  • 添加动画(到ProgressBar;以及RelativeLayout)
  • 使可见性更改在动画结束时发生
  • progressBar.bringToFront()
  • progressBar.invalidate()和postInvalidate()
  • relativeLayout.invalidate()和postInvalidate()之间的关系

如何使ProgressBar立即显示?

可能尝试使完整视图无效或执行setContentView(R.layout.abc)


在类似情况下,我所做的也是使用调度程序启动后续代码,以便UI屏幕更新有时间进行更新,并且不会在优先级上被向后推。如果你能在代码中做到这一点,即使是0.5秒也足够了…?

这真的很奇怪-到目前为止,它在我的案例中一直有效。我想一定还有其他一些任务阻止了UI的更新。它甚至在2-3秒的延迟下都不能工作吗?那么可以肯定的是,一定有什么东西可以阻止用户界面的更新!我认为现在发生的是很多UI线程被其他方法阻塞。代码非常混乱。