【发布时间】:2015-10-06 17:10:19
【问题描述】:
我有一个使用常规插件扩展点创建的 ViewPart,其比例定义了它的高度。稍后,我有一段代码为 ViewPart 的 Canvas 添加了更多内容。除非用户拖动 ViewPart 的边缘以使其更大,否则不会显示新项目。有没有办法以编程方式告诉 ViewPart 调整自身大小以匹配其当前内容或我指定的值?
【问题讨论】:
标签: eclipse eclipse-rcp
我有一个使用常规插件扩展点创建的 ViewPart,其比例定义了它的高度。稍后,我有一段代码为 ViewPart 的 Canvas 添加了更多内容。除非用户拖动 ViewPart 的边缘以使其更大,否则不会显示新项目。有没有办法以编程方式告诉 ViewPart 调整自身大小以匹配其当前内容或我指定的值?
【问题讨论】:
标签: eclipse eclipse-rcp
你可以让它工作,但只适用于它们自己的视图堆栈中的视图。请参阅 IViewPart 的 JavaDoc:
As of 3.4, views may optionally adapt to ISizeProvider if they have a
preferred size. The default presentation will make a best effort to
allocate the preferred size to a view if it is the only part in a stack.
If there is more than one part in the stack, the constraints will be
disabled for that stack. The size constraints are adjusted for the size
of the tab and border trim. Note that this is considered to be a hint to
the presentation, and not all presentations may honor size constraints.
要查看实际情况,请按照here 所述查看 UI 测试项目并打开名为“布局约束测试”的视图。
【讨论】:
“简短的回答是,您无法始终控制视图的大小和位置。”
更多信息请访问Eclipse FAQ。
【讨论】:
如果我没记错的话,没有办法让 ViewPart 自行调整大小。我们之前(在 RCP 3.4 中)遇到过这个问题,我相信我们必须解决它。
我认为我们要做的是首先添加所有可能的控件,然后隐藏它们。但是,我们是通过向导执行此操作的,所以我们所做的只是显示第一页,并且控件并不是非常动态的。例如,我们知道控件的最大数量,并且没有任何内容是用户可以修改的。
【讨论】: