4

我有一个使用常规插件扩展点创建的 ViewPart,其比例定义了它的高度。稍后,我有一段代码为 ViewPart 的 Canvas 添加了更多内容。除非用户拖动 ViewPart 的边缘使其变大,否则不会显示新项目。有没有办法以编程方式告诉 ViewPart 调整自身大小以匹配其当前内容或我指定的值?

4

3 回答 3

4

您可以使其工作,但仅适用于它们自己的视图堆栈中的视图。请参阅 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. 

要查看实际情况,请查看此处描述的 UI 测试项目并打开名为“布局约束测试”的视图。

于 2009-06-12T15:36:28.020 回答
1

“简短的回答是,你不能总是控制视图的大小和位置。”

更多信息请参见 Eclipse 常见问题解答

于 2009-06-12T15:09:15.120 回答
0

如果我没记错的话,没有办法让 ViewPart 自行调整大小。我们之前(在 RCP 3.4 中)遇到过这个问题,我相信我们必须解决它。

我认为我们要做的是首先添加所有可能的控件,然后隐藏它们。但是,我们是通过向导执行此操作的,所以我们所做的只是显示第一页,并且控件并不是非常动态的。例如,我们知道控件的最大数量,并且没有任何内容是用户可以修改的。

于 2009-06-10T19:13:50.460 回答