首页 > 解决方案 > ClickListener 仅适用于 Table Libgdx 中的元素

问题描述

我有一个表扩展主类(table_A)。在 table_A 类中,我有一个方法,其功能是将新表 (table_b) 添加到我的 table_A 中(用于实现滚动窗格结果),同时将点击侦听器分配给 table_b。

我虽然通过将 clicklistener (ck) 添加到 table_b 将使 table_b 可检测。但是,只有 table_b 中的元素才能从 clicklistener 中进行检测。

请帮忙

我的 table_A 添加表函数如下:

 public void addRow(Table newRow){
    scrollTable.row();
    scrollTable.add(newRow).width(newRow.getWidth()).pad(10);
    newRow.addListener(ck);
    newRow.debug();
    newRow.setName(stage++ +"");
}

我的调试表如下:

在此处输入图像描述

我的 table_b 代码如下:

  add(challengeLabel).colspan(10).expandX().align(Align.left).fill();
        row();

        add(star1).colspan(1).size(starSpaceWidth, star1.getHeight() / star1.getWidth() * starSpaceWidth).expandX().fillX().align(Align.right);
        add(star2).colspan(1).size(starSpaceWidth, star1.getHeight() / star1.getWidth() * starSpaceWidth);
        add(star3).colspan(1).size(starSpaceWidth, star1.getHeight() / star1.getWidth() * starSpaceWidth);
        add(star4).colspan(1).size(starSpaceWidth, star1.getHeight() / star1.getWidth() * starSpaceWidth);
        add(star5).colspan(1).size(starSpaceWidth, star1.getHeight() / star1.getWidth() * starSpaceWidth);

标签: libgdx

解决方案


如果你看一下 Table 的构造函数,你会看到这一行:

setTouchable(Touchable.childrenOnly);

它正在给你带来麻烦。为您的 table_B 更改它。


推荐阅读