user-interface - 在 Libgdx 中实现滚动窗格
问题描述
我正在尝试在 libgdx 中制作一个可滚动的表格。每行有 4 列,并且取决于整数,表中的图像总数随着行的增加而增加。
我在表格中添加图像,我将其添加到滚动窗格中,最后将滚动窗格添加到另一个添加到舞台的表格中。
private void setCards(int row, int columns, int wins) {
//This function adds images to the table
int r ;
if(wins%columns == 0)
r=wins/columns;
else
r = wins/columns + 1;
for (int j = 0; j < r; j++) {
for (int i = 1; i <= columns; i++) {
if (j * columns + i <= wins) {
int k =j*columns+i;
if(k>12)
k= (k%12) + 1;
winningCard = new Texture(Gdx.files.internal("cards/winning_card" + String.valueOf(k)+ ".png"));
Image image = new Image(winningCard);
mTable.add(image).colspan(1).pad(10);
}
else {
scoreCard = new Texture(Gdx.files.internal("cards/score_card.png"));
Image background = new Image(scoreCard);
mTable.add(background).colspan(1).pad(10);
}
mTable.pad(10);
}
mTable.row();
}
}
在此之后,我将表格添加到滚动窗格
mTable.setFillParent(true);
pane = new ScrollPane(mTable);
pane.setScrollingDisabled(true,false);
pane.setScrollBarPositions(true,false);
pane.setFillParent(true);
pane.setClamp(true);
table.add(pane);
table.setFillParent(true);
stage.addActor(table);
我面临的问题是,有很多空白空间,我必须向下滚动才能看到图像。我希望屏幕从第一行开始。
解决方案
不要在 ScrollPane 内的表上使用 setFillParent(true)。它会导致你的问题。
如果要将表格扩展到滚动窗格的大小,请使用 expand()/expandX()/expandY()。
推荐阅读
- visual-studio - Visual Studio 2019:EditorConfig 不适用于某些项目
- java - 使用 mapbox 搜索时如何获取起点和终点
- python - 如何以整数值作为列名对熊猫数据框进行切片
- android - 如何在 Android Studio 的 RecyclerView 中更改图像?
- javascript - 如何在 Reactjs 的列表中调用按钮单击
- clickhouse - 在 clickhouse 中枢轴
- java - 如何在android studio中使用液体滑动?
- javascript - 在 Spark AR Studio 中有延迟的人脸跟踪器的父对象?
- html - html 两个相邻且高度相等的 span 元素
- autodesk - Model Derivative API:桶的范围是什么?