Libgdx 强制参与者遵守表中设置的宽度。添加(actor).width()

Libgdx 强制参与者遵守表中设置的宽度。添加(actor).width(),libgdx,Libgdx,我正在表中设置演员的宽度。添加(演员)。宽度(宽度)。填充设置为屏幕宽度的1%。这是我得到的结果: 正如你所看到的,演员之间的距离远远超过1%。我尝试使用fill()方法,但没有成功。我还在演员身上尝试了setFillParent(true),但没有成功。这是怎么回事?这是完整的代码。演员之间的唯一间距应该是我设置的填充间距。我如何做到这一点 private void createScrollPane(){ texture=new Texture("badlogic.jpg");

我正在
表中设置演员的宽度。添加(演员)。宽度(宽度)
。填充设置为屏幕宽度的1%。这是我得到的结果:

正如你所看到的,演员之间的距离远远超过1%。我尝试使用
fill()
方法,但没有成功。我还在演员身上尝试了
setFillParent(true)
,但没有成功。这是怎么回事?这是完整的代码。演员之间的唯一间距应该是我设置的填充间距。我如何做到这一点

private void createScrollPane(){
        texture=new Texture("badlogic.jpg");
        ImageButton.ImageButtonStyle fibs=new ImageButton.ImageButtonStyle();
        fibs.imageUp=new TextureRegionDrawable(new TextureRegion(texture));
        button1= new ImageButton(fibs);
        button2= new ImageButton(fibs);
        button3= new ImageButton(fibs);

        button1.setPosition(0, 0);
        button2.setPosition(0, 0);
        button3.setPosition(0, 0);
        scrollTable=new Table();
        scrollTable.setBounds(Gdx.graphics.getWidth()*0.03f,0,Gdx.graphics.getWidth()*0.94f, Gdx.graphics.getHeight());
        scrollTable.setPosition(Gdx.graphics.getWidth() * 0.03f, 50);
        scrollTable.add(button1).width(Gdx.graphics.getWidth() * 0.3f).padLeft(Gdx.graphics.getWidth() * 0.01f).fill();
        scrollTable.add(button2).width(Gdx.graphics.getWidth() * 0.3f).padLeft(Gdx.graphics.getWidth() * 0.01f).padRight(Gdx.graphics.getWidth() * 0.01f).fillX();
        scrollTable.add(button3).width(Gdx.graphics.getWidth() * 0.3f).padRight(Gdx.graphics.getWidth() * 0.01f).fill();

        stage.addActor(scrollTable);
    }

ImageButton
是一个
按钮
,上面有一个
图像
。如果您只需要一个按钮,那么使用
按钮
类并将
向上
可绘制设置为您想要的可绘制。请注意,您可以启用阶段或表格的调试绘图来可视化正在进行的操作。

ImageButton
是一个
按钮,上面有一个
图像。如果您只需要一个按钮,那么使用
按钮
类并将
向上
可绘制设置为您想要的可绘制。请注意,您可以启用阶段或表格的调试绘图来可视化正在发生的事情。

您的函数调用影响的是表格的单元格,而不是单元格中的参与者

调用
scrollTable.setDebug(true)
查看单元格、填充等。您会很高兴发现函数调用只在单元格上工作,而不是在单元格内容上工作

下一步是用小部件构建一个复合布局,它允许您展开按钮,但保持它们水平对齐。我不确定,如果你足够努力地与细胞作战,你可能只需要一张桌子就可以做到这一点

我所做的是使用一个表,然后添加一个水平组。水平组位于表上的一个单元格内。在HorizontalGroup中,我添加了我的按钮。在HorizontalGroup中以我想要的方式布置按钮要比通过表格布置容易得多


对于ImageButton,您可以显式设置样式的
minHeight
minWidth
,这将强制缩放附加的图像。

您的函数调用影响的是表格的单元格,而不是单元格中的参与者

调用
scrollTable.setDebug(true)
查看单元格、填充等。您会很高兴发现函数调用只在单元格上工作,而不是在单元格内容上工作

下一步是用小部件构建一个复合布局,它允许您展开按钮,但保持它们水平对齐。我不确定,如果你足够努力地与细胞作战,你可能只需要一张桌子就可以做到这一点

我所做的是使用一个表,然后添加一个水平组。水平组位于表上的一个单元格内。在HorizontalGroup中,我添加了我的按钮。在HorizontalGroup中以我想要的方式布置按钮要比通过表格布置容易得多


对于ImageButton,您可以显式设置样式的
minHeight
minWidth
,这将强制缩放附加的图像。

这并不能真正以有意义的方式解决问题。他的函数调用影响的是表(及其单元格)的布局,而不是参与者,他没有意识到其中的区别。这并没有真正以有意义的方式解决这个问题。他的函数调用影响表(及其单元格)的布局,而不是参与者,他没有意识到其中的差异。