首页 > 解决方案 > TextTooltip未在android上显示

问题描述

我在任何地方都没有找到类似的问题,所以我决定发布。问题是 texttooltip 没有显示在 android 上的元素上,但在桌面启动时完美运行。我添加了一些系统输出,应用程序似乎可以正确检测进入和退出事件(桌面显示相同的控制台输出),但由于某种原因 tt 仍然不会弹出。目标是当用户持有元素(可触摸)时,应用程序会显示一个文本工具提示。可能是什么问题?

编辑:我尝试过扩展 TextTooltip,覆盖 enter() 和 exit() 方法,并且只向它们添加 sysout。用我的 TextTooltip 将手指按住按钮会触发一次 enter() 并释放手指会触发一次 exit()。就像将鼠标悬停在桌面上一样,输出相同。唯一的区别是没有显示实际的工具提示。

标签: javaandroidlibgdxscene2d

解决方案


好的,我解决了这个问题。也许它可以帮助任何有类似操作系统相同问题的人。

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 时添加一个序列。


推荐阅读