当宽度百分比不符合设定的约束时,如何控制它的宽度百分比?

编程语言 2026-07-09

enter image description here 我已经初始化了我的主体容器:

    TableLayout tlivQH = new TableLayout(1, 4);
    Container body = new Container(tliv);

4个容器被初始化为:

    Container c5 = new Container(tlii5);
    Container c3 = new Container(tlii3);
    Container c20 = new Container(tlii19);
    Container c19 = new Container(tlii20);

每行的布局是:

TableLayout tlii5(and 3,19,20) = new TableLayout(12, 1);

4个容器的每一行都包含一个带标签的区域、38W、一个按钮和104W,总宽度为181。

主体被初始化为:

            body.add(tlivQH.createConstraint().widthPercentage(18), c5).
                    add(tlivQH.createConstraint().widthPercentage(23), c3).
                    add(tlivQH.createConstraint().widthPercentage(23), c19).
                    add(tlivQH.createConstraint().widthPercentage(36), c20);

我最初将每个容器的宽度百分比设为25%,后来降至用于开发附图的18%。

这个方案只有四个象限,因此这是五种方案配置中唯一失败的一个。我无法将c5的宽度限制在低于36%,如截图中的c5宽度(615/1710)所示。

我对c5使用了Flow和 Box Layout,但c5仍然显示为36%,把c20推到表单布局中的c5下面,导致c20无法显示。若有想法,请赐教。

解决方案

请看你代码中的这一行:

TableLayout tlivQH = new TableLayout(1, 4);                                                  
Container body = new Container(tliv);   // ← tliv, not tlivQH

如果 tliv 在你的实际代码中是一个不同的布局实例,例如一个不同的 TableLayout,就像内部的某一个。

子元素会回退到它们偏好的宽度,并由布局自行定位。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章