什么是BoundsPadding
*【注意】*通常情况下,VRender默认并不具备类似DOM的布局,比如在DOM中,你可以写两个div,那么第二个div会放置在第一个div的下方。但如果在VRender中,你写了两个矩形,那么第二个矩形会覆盖在第一个矩形之上。这是因为VRender中所有的定位都是相对定位的,它依靠你配置的x、y等参数定位,坐标系是左上角为原点,向右为x轴正方向,向下为y轴正方向。这就导致了VRender的布局和DOM的布局是不一样的。
所有图元都有自己的AABBBounds,如果觉得AABBBounds太小,需要扩大,就可以配置BoundsPadding。
// 包围盒的padding // 如果是number,那么四个方向的padding都是这个值 // 如果是[number, number] ,那么分别是上下和左右的padding // 如果是[number, number, number, number],那么分别是上右下左的padding boundsPadding: number | number[];

特殊情况
刚才说了,BoundsPadding是影响元素的AABBBounds,正常情况下并不影响位置,因为位置是固定通过xy等配置配出来的,并不是基于元素和元素之间的位置关系来计算的布局。
但是!!,当你开启了flex布局插件,并在元素中设置了display: flex之后,该元素就会应用上flex布局。其子元素就会基于它的AABBBounds来进行布局。在这种情况下,BoundsPadding就会影响到子元素的位置。
关于Flex布局的详细介绍,请参考Flex布局章节。
示例
接下来我们展示两个实例,一个是没有开启flex布局的情况,一个是开启flex布局的情况。