【问题标题】:Scene2d - absolute positioningScene2d - 绝对定位
【发布时间】:2015-09-22 20:32:24
【问题描述】:

我想在table 的同一行中添加 3 个彼此相邻的数字,我还希望每个数字之间有大约 100 个单位的填充。在这些数字下面是与它们对应的单词,例如:

  0         0         0
Total      Wins     Losses

但是,如果我使用填充,即table.add(actor).padLeft(100);,那么将数字从 0 更改为 160 也会将数字向右移动,因为我正在使用填充。示例:

  160         0         0
Total      Wins     Losses

如何避免这种行为?这一定是一个常见的场景。

【问题讨论】:

    标签: libgdx scene2d


    【解决方案1】:

    我建议创建一个扩展 WidgetGroup 的自定义类。 在这个类中,您管理两个标签,一个用于数字,一个用于数字的“标签”。 然后,您可以轻松地设置标签的相对位置,而无需记住它们在表格内的位置。 也许这个特殊类的构造函数可以接受一个字符串作为“标签”和数字的初始值。

    如果你的想法很清楚或者你需要更多信息,请告诉我。

    卢卡

    【讨论】:

    • 我想我明白了,但一些示例代码会很棒
    【解决方案2】:

    我要做的是将表格中的所有单元格设置为居中,默认情况下,左右两边都有一点填充,如下所示:

    
        Table table1 = new Table();
        // Set defaults for all cells in table. Alignment and padding in this case.
        table1.defaults().align(Align.center).pad(0, 20, 0, 20);
    
        Label number1 = new Label("160", skin);
        Label number2 = new Label("0", skin);
        Label number3 = new Label("0", skin);
        table1.add(number1);
        table1.add(number2);
        table1.add(number3);
        table1.row();
    
        Label label1 = new Label("Total", skin);
        Label label2 = new Label("Wins", skin);
        Label label3 = new Label("Losses", skin);
        table1.add(label1);
        table1.add(label2);
        table1.add(label3);
        table1.row();
    

    试试看。

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 1970-01-01
      • 2015-04-27
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 2014-10-06
      相关资源
      最近更新 更多