java - 如何在 LibGDX 中的按钮上切换“过度”样式?
问题描述
我想使用TextButton
. 菜单应该可以通过鼠标和键盘访问。对于正确的悬停行为,我照常设置样式:
TextButton.TextButtonStyle textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.up = skin.newDrawable("background", Color.GRAY);
textButtonStyle.down = skin.newDrawable("background", Color.DARK_GRAY);
textButtonStyle.checked = skin.newDrawable("background", Color.DARK_GRAY);
textButtonStyle.over = skin.newDrawable("background", Color.LIGHT_GRAY);
textButtonStyle.font = skin.getFont("default");
这适用于鼠标(over
鼠标悬停时切换样式)。但是,我希望能够通过键盘选择菜单项。“当前选择的”菜单项应该可以使用箭头键选择并enter
确认该项目。
键盘交互在这里不是问题,而是在按钮上设置“突出显示”模式。我想用键盘选择一个按钮应该和用鼠标悬停在它上面一样。但看起来没有办法使用 API 来“切换”按钮的状态。有isOver()
方法,但没有setOver()
方法。
有任何想法吗?我真的必须创建两种样式并将它们切换出来setStyle()
吗?我会认为那丑陋..
解决方案
为您的演员创建一个自定义类并覆盖您的 isOver 方法以返回 isFocused || super.isOver()
顺便说一句,您可以查看https://github.com/MrStahlfelge/gdx-controllerutils/wiki/Button-operable-Scene2d以了解不重新发明轮子。
推荐阅读
- python - 如何在我使用 seaborn 创建的散点图上添加一个圆圈
- c - c中的静态查找表,用于分配值的枚举
- javascript - 我正在尝试使用他们的 ID 从公会中获取成员,但现在我使用的变量返回未定义
- google-apps-script - 从多个 Google 表格中删除特定数据
- python - 从具有“全部显示”按钮的表中抓取数据
- c# - 错误:初始化字符串的格式不符合从索引 0 开始的规范
- r - R plotly简单的箱线图突出显示最近的值
- windows - Windows 任务计划程序用户帐户详细信息和未知的“交互式”用户
- r - 使用for循环R按每列的中位数分割样本
- reactjs - 以编程方式访问问题?