2016-03-20 26 views
0

我有一個TextButton,我想禁用它。 我正在使用默認外觀。如何爲演員設置禁用的外觀

我瞭解到:

  • setDisabled什麼都不做
  • setTouchable(Touchable.disabled)的作品,但不做任何處理的外觀

我檢查了uiskin.json文件,但它只能定義有關updown狀態並沒有什麼禁用狀態:

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 } 
}, 

我該怎麼辦?創建新樣式並將其應用於按鈕時禁用它?或者是否有我應該使用的內置狀態?

回答

2

創建新樣式或添加到您現有的樣式中。您可以定義一個名爲disabled的背景可繪製字體和disabledFontColor的字體顏色。如果您從樣式中忽略了其中的任何一種,那麼當您撥打setDisabled時,該特定元素不會更改。

+0

這些名字是強制性的嗎?他們爲什麼不把樣式放在默認的皮膚文件中? – Nestor

+0

它們是可選的,因爲您可以將它們排除在外而不會導致異常。 「默認」風格並不是真的默認,是嗎?你必須複製並粘貼到你的項目中。它遠不是一個完整的皮膚。很多東西都是從中丟失的。 – Tenfour04

+0

如果你想知道你可以爲某個小部件的風格配置什麼,請查看該風格的Javadoc頁面或源代碼。 – Tenfour04

0
  • setDisabled無效!

你沒有注意到外觀突然變化的原因是你沒有在skin.JSON文件或編程方式下配置禁用按鈕的狀態。

Cobolfoo創建了一個皮膚編輯器,供您使用libGDX。最後一次提交是2年前,但自此以後沒有任何變化,皮膚編輯器應該完美無缺地工作。

Skin-Editor on github

我強烈建議你採取看它,因此皮膚文件擺弄只是浪費時間國際海事組織。

+0

如果只使用'setDisabled',點擊事件仍然被觸發,所以我不得不使用'setTouchable'。 – Nestor