您的位置:首页 > 其它

dialog 设置窗口大小无效

2016-09-27 09:30 387 查看

引出

最近使用 dialog 时,发现设置 dialog 的窗口固定大小无效问题。

public static Dialog showOkDialog(Stage stage, String title, String text, Skin skin) {
final Dialog dialog = new Dialog(title, skin);
dialog.text(text).button("confirm", true).key(Keys.ENTER, true).key(Keys.ESCAPE, true);

dialog.setSize(400, 300);
dialog.getContentTable().pad(50, 30, 50, 30);
dialog.getButtonTable().pad(50);
return dialog.show(stage);
}


使用如下方法设置窗口大小无效。

void com.badlogic.gdx.scenes.scene2d.Actor.setSize(float width, float height)


查看源码后发现,调用 show 方法内部处理问题



pack() 方法跳转到 【com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup】



在该 pack 方法内会重新调用 setSize 方法。

解决

so 这下知道怎么回事了。只需要在 show 方法后调用 setSize 方法

public static Dialog showOkDialog(Stage stage, String title, String text, Skin skin) {
final Dialog dialog = new Dialog(title, skin);
dialog.text(text).button("confirm", true).key(Keys.ENTER, true).key(Keys.ESCAPE, true);

dialog.getContentTable().pad(50, 30, 50, 30);
dialog.getButtonTable().pad(50);
dialog.show(stage);
// 该方法必须在 dialog show 方法调用之后使用
dialog.setSize(GlobalData.WIDTH / 3, GlobalData.HEIGHT / 3);
// 注意 重新设置 size 后。位置不是屏幕居中了。若有需要,需要重新设置
return dialog;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  libgdx dialog 大小