网格布局是WisP组件的一种常见布局。在表单布局出现以前,我们通常使用网格布局在一个自定义的组件内放置其他组件。如图:


图片.png

它对应的配置如下图:


图片.png

设定组件的布局前,首先需要了解以下的知识点:

1)只有容器类的组件才能进行布局。容器类的组件目前只有 .assy(自定义组件)和.stickerassy(带有标题栏的自定义组件),如下图:


图片.png

2)一个组件可以在不同的屏幕宽度下定义不同的布局。如上图,定义了一个默认的,高分辨率和低分辨率的。

当然,这样必然会增加配置的工作量,但是,对于超大型的屏幕而言,可放置更多的组件以便利用空间。但也请勿滥用。一般的情况下,我们并不需要在一个组件内部配置很多种布局。

我们在上图中可以看到 兼容设备最小宽度,兼容设备最大宽度,就是用来支持不同种类的屏幕的配置。

在布局的基本属性中,我们可以设置他的背景CSS, Designer提供了一组选项。上图选择的是Deep Relief

下级组件容器CSS主要用于容器内布置的组件的边框,阴影等效果。

对于网格布局而言,重要的是网格的样式。

网格布局是一个给定列数,行数根据组件摆放来进行计算的布局方式。组件的摆放顺序是,从左到右,从上到下。

如果,设定了横向展开则表示如果该容器在无法完全显示横向内容时,将出现横向的滚动条。

如果,设定了纵向展开则表示如果该容器在无法完全显示纵向内容时,将出现纵向的滚动条。

设定各列等宽是指网格布局忽略内部组件的大小,而让每一列都具有相同的宽度。


图片.png

如上图,三列等宽

其他参数的设置见下图:


图片.png

网格布局中需要对每个组件进行配置:


图片.png

上图的是网格布局需要配置的参数

首先是选择组件,也可以给这个组件给定一个容器CSS类。如果不设置,这个组件的容器将使用布局上的统一设置。上下文命名,用于容器组件访问该自组件(这个以后我们会在有关上下文的部分讨论)。

对于这个子组件,可设定对齐方式:

填充,靠左,靠右或者居中。这里的对齐方式是指该组件在格子内部的位置。纵向也是类似的。

横向跨越单位,纵向跨越单位,是指这个组件在横向和纵向占有几个格子。

横向纵向填充是指布局完成后,容器如果还有剩余空间,那么这个格子是否去抢占剩余的空间。

我们也可以直接给定组件的宽度和高度。

这个布局其实就是SWT GridLayout的配置化。

相比后面提到的表单式布局来说,网格布局有一些优缺点:

1)网格布局只能控制横向等宽,无法完美控制纵向等宽。但是,表单布局可以。如果要适配非标的屏幕,表单布局更加合适。

2)网格布局可以设定一个纵向扩展,然后给组件定高定宽。这种方式特别适合于大量组件的布局方式。通过纵向滚动来显示。