Libgdx 如何为演员设置禁用的外观

Libgdx 如何为演员设置禁用的外观,libgdx,Libgdx,我有一个文本按钮,我想禁用它。 我使用的是默认皮肤 我了解到: setDisabled什么也不做 setTouchableTouchable.disabled可以工作,但对外观不起任何作用 我检查了uiskin.json文件,但它只定义了向上和向下状态,而没有定义禁用状态: com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: { default: { down: default-round-down, up: de

我有一个文本按钮,我想禁用它。 我使用的是默认皮肤

我了解到:

setDisabled什么也不做 setTouchableTouchable.disabled可以工作,但对外观不起任何作用 我检查了uiskin.json文件,但它只定义了向上和向下状态,而没有定义禁用状态:

com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
    default: { down: default-round-down, up: default-round, font: default-font, fontColor: white },
    toggle: { down: default-round-down, up: default-round, checked: default-round-down, font: default-font, fontColor: white, downFontColor: red }   
},

我该怎么办?创建一个新样式,并在禁用时将其应用于按钮?或者是否有我应该使用的内置状态?

创建新样式或添加到现有样式中。可以使用disabledFontColor定义名为disabled的背景可绘制字体颜色。当您从样式中省略这两个元素中的任何一个时,当您调用setDisabled时,该特定元素不会更改

setDisabled确实有效! 您之所以没有注意到外观的突然变化,是因为您没有在skin.JSON文件中或以编程方式配置禁用按钮的状态

Cobolfoo创建了一个皮肤编辑器,供您与libGDX一起使用。上一次提交是2年前,但此后没有任何变化,皮肤编辑器应该可以完美地工作


我强烈建议您查看它,因此在我看来,摆弄皮肤文件只是浪费时间。

这些名称是强制性的吗?为什么他们没有在默认外观文件中添加样式?它们是可选的,因为您可以在不引起异常的情况下将它们删除。默认样式不是真正的默认样式,是吗?你必须复制并粘贴到你的项目中。它离完整的皮肤还很远。它缺少很多东西。如果你想知道可以为某个小部件的样式配置什么,请查看该样式的Javadoc页面或源代码。感谢你为我指明了正确的方向。我在按钮的JSON描述中添加了两个属性:disabledFontColor:red,disabled:default round-down和现在禁用的按钮看起来不同。如果只使用了setDisabled,click事件仍然会触发,因此我必须使用setTouchable。