为了账号安全,请及时绑定邮箱和手机立即绑定

创建后激活导致工具栏在零件堆栈中丢失

创建后激活导致工具栏在零件堆栈中丢失

慕沐林林 2023-05-10 15:24:24
我有一个包含两个部分的零件堆栈。第二部分有一个ToolBar带有Direct Tool Item图标的图标。我想初始化第二部分而不显示它,因为有些代码需要立即执行,而不是在聚焦时。为此,我调用:partService.showPart(secondPartID, PartState.CREATE);在此之后我打电话:partService.showPart(secondPartID, PartState.ACTIVATE);然后,这会按预期将第二个视图带到前面,但工具栏丢失了。我已经尝试获取部件的工具栏并获取小部件,但小部件为空。如果我切换到第一部分(通过单击选项卡)然后切换回第二部分,则工具栏已成功创建。我想知道我是否错误地使用了CREATE/ACTIVATE调用,因为我得到的行为很奇怪。是什么原因造成的?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

通过将其包装在 an 中,async它可以修复它。我已经尝试了多种变体来解决这个问题,这是唯一可以解决的问题。

Display.getDefault().asyncExec(() -> partService.showPart(id, PartState.ACTIVATE));

一定是事情还没有初始化/准备好导致工具栏无法添加。通过使用异步,它必须等待直到它准备好显示工具栏。

如果有人能够提供任何额外信息来说明为什么会修复它,我会更新答案。


查看完整回答
反对 回复 2023-05-10
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信