【发布时间】:2013-03-23 10:49:22
【问题描述】:
我有一个 ScrollPane,它在一个组中水平对齐了多个图像。我需要的是水平滚动,以便在滚动时“捕捉”到图像,而不仅仅是滚动到所需的任何数量。所以在任何滑动之后,滚动应该停止以适应整个图像而不是半个图像。主要是每个图像宽度等于滚动窗格宽度。 知道如何使用 libgdx ScrollPane 实现这一目标吗?
这是一个示例代码:
Image imgWhite = new Image(white);
imgWhite.setSize(width, height);
imgWhite.setPosition(0, 0);
Image imgYellow = new Image(white);
imgYellow.setColor(Color.YELLOW);
imgYellow.setSize(width, height);
imgYellow.setPosition(width, 0);
Image imgGreen = new Image(white);
imgGreen.setColor(Color.GREEN);
imgGreen.setSize(width, height);
imgGreen.setPosition(2*width, 0);
Group grp = new Group();
grp.addActor(imgWhite);
grp.addActor(imgGreen);
grp.addActor(imgYellow);
grp.setSize(3*width, height);
ScrollPane scrollPane = new ScrollPane(grp);
scrollPane.setSize(width, height);
【问题讨论】:
-
你试过ScrollListener吗?您需要处理滚动自己以创建快照效果。 scrollListener 中有某些标志可以告诉滚动是否已停止/滚动,因此在那个阶段您可以自己设置滚动位置。我在 listView 中做了类似的事情。
-
我找不到任何 ScrollListener,我尝试了 ActorGestureListener fling() 事件,但没有得到正确的行为,滚动结束时没有事件
-
滚动监听器可以嵌入任何滚动!
-
尝试使用公共 void fling(InputEvent 事件、float velocityX、float velocityY、int button)