我在table.add(actor).width(width)
设置演员的宽度。填充设置为屏幕宽度的1%。这是我得到的结果:
如您所见,演员之间的间距超过1%。我尝试使用fill()
方法,但它没有用。我也试过setFillParent(true)
演员,没有成功。这里发生了什么?这是完整的代码。 actor之间的唯一间距应该是我用padding设置的间距。我如何实现这一目标?
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);
}
答案 0 :(得分:0)
ImageButton
是一个Button
,其上面有Image
。如果您只想要一个按钮,那么使用Button
类并将up
drawable设置为您想要的drawable。请注意,您可以启用阶段或表的调试绘图,以显示正在进行的操作。
答案 1 :(得分:0)
您的函数调用正在影响Table的单元格,而不是单元格中的actor。
调用scrollTable.setDebug(true)
查看单元格,填充等。您会很高兴发现您的函数调用正在工作,只是在单元格而不是其内容上。
下一步是使用小部件构建复合布局,允许您展开按钮但将它们保持在水平对齐状态。如果你足够努力地对抗细胞,你可能能够用一张桌子来完成它,我不确定。
我做的是使用Table,然后添加HorizontalGroup。 HorizontalGroup位于表格中的单元格内。在HorizontalGroup里面,我添加了我的按钮。在HorizontalGroup中按照我想要的方式布置按钮比通过表格更容易。
对于ImageButton,您可以显式设置样式的minHeight
和minWidth
,这将强制缩放附加的图像。