【发布时间】:2014-12-03 01:32:11
【问题描述】:
我在舞台上添加了一个表格,但我无法为其触发点击监听器:
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);
我在桌子上设置了一个背景九补丁,它渲染得很好。点击没有效果。如果我在表格中添加标签或按钮之类的东西,然后为这些小部件设置相同的 ChangeListener,监听器就会正常触发。
Table 是否需要一些特殊处理才能使其正常工作?
谢谢
--------- 更新-------
我可以让它工作的唯一方法是使用 EventListener 来阻止 Table 实例上的所有交互:
table.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
return true;
}
});
所有事件都会在这里按预期触发。
我也尝试将表格设置为可触摸,但 ChangeListener 仍然不会触发:
table.setTouchable(Touchable.enabled);
table.setListener(....);
所以我想我会坚持使用 EventListener 方法。
【问题讨论】:
标签: libgdx