我有一個包含兩個部分的零件堆棧。第二部分有一個ToolBar帶有Direct Tool Item圖標的圖標。我想初始化第二部分而不顯示它,因為有些代碼需要立即執(zhí)行,而不是在聚焦時。為此,我調(diào)用:partService.showPart(secondPartID, PartState.CREATE);在此之后我打電話:partService.showPart(secondPartID, PartState.ACTIVATE);然后,這會按預期將第二個視圖帶到前面,但工具欄丟失了。我已經(jīng)嘗試獲取部件的工具欄并獲取小部件,但小部件為空。如果我切換到第一部分(通過單擊選項卡)然后切換回第二部分,則工具欄已成功創(chuàng)建。我想知道我是否錯誤地使用了CREATE/ACTIVATE調(diào)用,因為我得到的行為很奇怪。是什么原因造成的?
1 回答

慕妹3242003
TA貢獻1824條經(jīng)驗 獲得超6個贊
通過將其包裝在 an 中,async
它可以修復它。我已經(jīng)嘗試了多種變體來解決這個問題,這是唯一可以解決的問題。
Display.getDefault().asyncExec(() -> partService.showPart(id, PartState.ACTIVATE));
一定是事情還沒有初始化/準備好導致工具欄無法添加。通過使用異步,它必須等待直到它準備好顯示工具欄。
如果有人能夠提供任何額外信息來說明為什么會修復它,我會更新答案。
添加回答
舉報
0/150
提交
取消