1

我非常想知道在致電invalidateOptionsMenu()時會發生什麼情況。它會重新繪製整個操作欄,還是隻需撥打onCreateOptionsMenu(),然後onPrepareOptionsMenu()即可。根據android源代碼,它聲明選項菜單已更改,因此應該重新創建。下次需要顯示時,將調用onCreateOptionsMenu(android.view.Menu)方法。我有幾點需要澄清:在Android中調用invalidateOptionsMenu()時會發生什麼?

  • 它會以任何方式影響ActionBar選項卡嗎?
  • 它影響活動佈局內的viewpager嗎?
  • 它會影響與操作欄選項卡關聯的片段嗎?

回答

4

它宣佈,選項菜單已經改變,所以應該重新創建。 onCreateOptionsMenu(Menu)方法將在下次需要顯示 時調用。

是否會影響以任何方式的動作條的標籤?

這將重繪他們。

是否會影響活動的佈局裏面viewpager?

事實並非如此。

它的影響與動作條選項卡相關聯的片段?

它不

+0

嗨@Smittey你說InvalidateOptionMenu()將創建ActioBar標籤。我只是很想知道執行的代碼片段,以確保它確實發生,並且我可以避免這種情況發生。因爲由於這個調用,與標籤關聯的碎片在S3上被破壞。 –

+0

更新:我已經確定碎片消失的原因是從非UI線程調用invalidate選項菜單 –

相關問題