我遇到了使libgdxs scrollpane控件正常工作的问题。下面的代码显示了带有标签的简单布局,滚动窗格内的项目列表和按钮的控件设置。问题是我的滚动窗格除了vScroll / vScrollKnob ninepatch(那个小小的白色方块)以外没有显示任何内容 它看起来像这样:
private void setupLayout()
{
String[] listEntries = {"1","2","3","4","5"};
ListStyle listStyle = new ListStyle();
NinePatch example = new NinePatch(new Texture(Gdx.files.internal("data/example.9.png")));
listStyle.selectedPatch = example;
listStyle.font = new BitmapFont();
mList = new List(listEntries,listStyle);
ScrollPaneStyle paneStyle = new ScrollPaneStyle();
paneStyle.vScroll = example;
paneStyle.vScrollKnob = example;
mListScroll = new ScrollPane(mList,paneStyle);
mListScroll.setScrollingDisabled(true, false);
mListScroll.width = 500;
mListScroll.height = 500;
LabelStyle ls = new LabelStyle();
ls.font = new BitmapFont();
ls.fontColor = new Color(1.0f, 1.0f, 1.0f, 1.0f);
mLabel = new Label("Label", ls);
TextButtonStyle buttonStyle = new TextButtonStyle();
buttonStyle.font = new BitmapFont();
mButton = new TextButton("Button",buttonStyle);
Table table = new Table();
table.add(mLabel);
table.row();
table.add(mButton);
table.row();
table.add(mListScroll);
mStage.addActor(table);
}
如果我不使用滚动窗格并将列表直接添加到表中,它会按预期工作:
Table table = new Table();
table.add(mLabel);
table.row();
table.add(mButton);
table.row();
table.add(mList); //changed mListScroll(scrollpane class) to mList(List class)
mStage.addActor(table);
但是当项目太多时它会延伸到我的屏幕底部。我在这做错了什么?我需要在滚动窗格上设置另一个参数吗?
答案 0 :(得分:1)
我相信你遇到的问题是如何在桌面上添加内容。我建议使用以下代码,而不是你是如何做的:
Table table = new Table();
table.add(mLabel);
table.row();
table.add(mButton);
table.row();
// Changing the table layout size itself.
table.add(mListScroll).size(500, 500);
mStage.addActor(table);
有关更详细的说明,请参阅TableLayout此处的快速入门向您展示了如何使用表格来布置对象。