我在任何地方都没有找到类似的问题,所以我决定发表。问题是texttooltip不会在android上的元素上显示,尽管可以在桌面启动时很好地工作。我添加了一些sysouts,应用似乎可以正确检测进入和退出事件(桌面显示相同的控制台输出),但是由于某些原因,tt仍然不会弹出。目的是当用户按住元素(可触摸)时,应用会显示一个texttooltip。可能是什么问题?
编辑:我尝试扩展TextTooltip,覆盖enter()和exit()方法,仅向其中添加sysout。用我的TextTooltip按住手指按钮一次触发enter(),释放手指一次触发exit()。就像将鼠标悬停在桌面上一样,输出相同。唯一的不同是实际的工具提示没有显示。
好,我解决了这个问题。也许它可以帮助任何具有类似操作系统问题的人。
public class HoldTooltip extends ActorGestureListener {
Label tooltip_text;
Table tooltip_actor;
public HoldTooltip(String tooltip_text) {
this.tooltip_text = new Label(tooltip_text, skin);
tooltip_actor = new Table();
tooltip_actor.add(this.tooltip_text);
tooltip_actor.setSize(this.tooltip_text.getPrefWidth(), this.tooltip_text.getPrefHeight());
getGestureDetector().setLongPressSeconds(0.5f);
}
@Override
public boolean longPress(Actor actor, float x, float y) {
tooltip_actor.setPosition(x+50, y+50);
actor.getStage().addActor(tooltip_actor);
return super.longPress(actor, x, y);
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
tooltip_actor.remove();
super.touchUp(event, x, y, pointer, button);
}
[基本上,我只是重做了股票TextTooltip,区别在于该工具实际上按预期工作。如果您想要酷炫的动画,只需在添加或删除tooltip_actor到舞台上时添加一个序列即可。