我有一个表添加到一个舞台,我不能得到一个点击监听器为它开火:
Table table = new Table();
table.setX(0);
table.setY(0);
table.setWidth(300);
table.setHeight(300);
table.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
System.out.println("click");
}
});
stage.addActor(table);
Run Code Online (Sandbox Code Playgroud)
我在桌子上设置了一个背景九个补丁,它渲染得很好.点击无效.如果我向表中添加类似标签或按钮的内容,则将相同的ChangeListener设置为这些小部件,监听器就可以正常启动.
Table需要一些特殊处理吗?
谢谢
---------更新-------------------
我可以使用它的唯一方法是使用EventListener来阻止Table实例上的所有交互:
table.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
所有的事件都会按照预期在这里发射.
我也尝试将表设置为可触摸,但仍然不会触发ChangeListener:
table.setTouchable(Touchable.enabled);
table.setListener(....);
Run Code Online (Sandbox Code Playgroud)
所以我想我会坚持使用EventListener方法.