【问题标题】:TextTooltip not showing on androidTextTooltip未在android上显示
【发布时间】:2020-03-08 03:02:40
【问题描述】:

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

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

【问题讨论】:

  • 你能分享你的尝试吗?
  • 尝试向各种元素添加文本工具提示:可触摸的表格、按钮、窗口、标签。尝试调整 TooltipManager 设置,没有帮助。在桌面上对其进行了全部测试,并按预期工作。到目前为止,我也从未在 android 上遇到任何有关 scene2d 的问题。
  • 欢迎来到 SO。请向我们展示您的代码。查看how to ask a question 并提供minimal reproducible example 以便其他人可以实际帮助您。
  • 您使用的是哪个 gdx 版本?过去,Android 上的 ToolTips 存在错误。
  • 本月我用 gradle 构建了一个项目,所以我很确定版本是最新的。这些错误是几年前修复的,所以绝对不是这样。

标签: java android libgdx scene2d


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-10-02
    • 1970-01-01
    • 2018-12-23
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    相关资源
    最近更新 更多