2012-05-09 37 views
0

我有一個ProgressBar和一個VideoView都在RelativeLayout中,ProgressBar以z順序浮動在VideoView上方(在XML之後)。 ProgressBar是不確定的。當我切換視頻源時,通過將其可見性設置爲View.VISIBLE,我將顯示ProgressBar,直到新視頻播放完畢。我正在UI線程中執行此操作。使進度條覆蓋VideoView立即顯示

但我的ProgressBar不會立即顯示,儘管我的日誌語句(也在UI線程中,立即在setVisibility()調用之前)立即發生。它需要幾(2或3)秒。我已經嘗試了許多事情來立即使ProgressBar顯示,並且已經用完了想法。

  • 添加動畫(到進度;還向RelativeLayout的)
  • 做出動畫結束可見性改變發生
  • progressBar.bringToFront()
  • progressBar.invalidate()和postInvalidate()
  • relativeLayout.invalidate()和postInvalidate()

我怎樣才能使進度立即出現?

回答

1

可能嘗試使整個視圖無效或執行setContentView(R.layout.abc);

我在類似情況下所做的也是使用調度程序啓動後續代碼,以便UI屏幕更新有時間更新並且不會被優先推回。如果你可以在你的代碼中做到這一點,那麼即使0.5秒也足夠了......?

+0

謝謝;我嘗試了調度程序的方法,但它沒有幫助。 –

+0

這真的很奇怪 - 到目前爲止它總是在我的情況下工作。我猜想,必須有其他一些任務讓UI不再更新。它有2-3秒的延遲時間嗎?那麼肯定的是,肯定會有一些讓UI不能更新的東西! – user387184

+0

我認爲發生的事情是很多來自其他方法的UI線程阻塞。代碼非常糟糕。 –