我已经花了好几个小时试图解决这个问题而且我已经疯了,请看一下我的问题。
说明问题的图片:
当exitButton
' setFillParent
功能设为false
时
结果是图像的右侧,按钮居中
在Container内但尺寸错误。
当exitButton
' setFillParent
功能设为true
时
结果是图像的左侧,按钮的大小正确
但这个立场是错误的。
以下是代码:
Container container = new Container(exitButton);
container.fill();
container.setRound(false);
container.setSize(buttonSize, buttonSize);
exitButton.setFillParent(true);
//exitButton.setFillParent(false);
container.setPosition(
((float)viewportWidth/7f) - (buttonSize/2f)
,((float)viewportHeight*5f/6f) - (buttonSize/2f)
);
答案 0 :(得分:0)
小部件的设计是由父母设计的。 setFillParent(true)
允许窗口小部件覆盖它并设置自己的大小(以匹配其父级的大小)。除非它是层次结构的顶级窗口小部件,否则你永远不想这样做,因为当一个窗口小部件控制它自己的大小时,它的父级就失去了正确定位它的能力。
至于为什么按钮被绘制得比容器大,如果孩子的minWidth
/ minHeight
大于父母,则会发生这种情况。假设exitButton
是一个ImageButton或只是一个Button,这意味着它的图像或背景的drawable大于buttonSize
。
最简单的方法是覆盖getMinWidth()
和getMinHeight()
以返回零。例如:
exitButton = new Button(skin, style){
public float getMinWidth(){return 0;}
public float getMinHeight(){return 0;}
};