java - TextTooltip未在android上显示
问题描述
我在任何地方都没有找到类似的问题,所以我决定发布。问题是 texttooltip 没有显示在 android 上的元素上,但在桌面启动时完美运行。我添加了一些系统输出,应用程序似乎可以正确检测进入和退出事件(桌面显示相同的控制台输出),但由于某种原因 tt 仍然不会弹出。目标是当用户持有元素(可触摸)时,应用程序会显示一个文本工具提示。可能是什么问题?
编辑:我尝试过扩展 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 时添加一个序列。
推荐阅读
- django - Django中具有唯一约束的软删除
- javascript - 使用 json.stringify 的 Anagram 解决方案,这是解决问题的正确方法吗
- javascript - 如何从文本中删除字符串
- linux - 使用 awk 处理具有不同字段数的多个文件
- c# - 根据兄弟节点选择 XML 节点
- c# - 在通过反射调用方法后加载程序集/dll 时,方法调用会引发“对象与目标类型不匹配”异常
- npm - 为什么 npm 会出现奇怪的错误?
- javascript - 对于部署在 Netlify 上的 3D 模型,ProgressEvent.total 为 0,但在本地环境中工作
- java - CSV 日期到 arraylist_Java
- javascript - 如何在角度材料表中获得间隙