2016-07-25 74 views
0

我不知道是否有可能建立與視狀態不同的外觀,所以它的作用就像一個按鈕,自定義按鈕佈局。例如,帶有ImageView和TextView的LinearLayout,以及這些狀態。狀態選擇自定義按鍵佈局(即的LinearLayout)

  • 當按鈕處於正常狀態,顯示image_normal.png和文本爲紅色。

  • 當按鈕是,顯示image_pressed.png,背景紅色和文字白色。

  • 當按鈕是禁用,顯示image_disabled.png和文字灰色。

謝謝!

回答

1

任意視圖可具有任何背景和任何視圖可以由可點擊的,所以沒有什麼阻止您具有LinearLayout與您所描述的背景。值得一提的是,你並不需要一個LinearLayout有一個旁邊的圖片文字,你可以使用一個事實,即TextView支持在使用drawable[Left|Top|Right|Bottom]屬性文字的任何一方可繪製。

如果您的問題是關於selector drawable的語法,我會引用您的documentation。請注意,Android從上到下評估狀態,所以明智地選擇順序。當上述條件都不適用時,最後一項應該是「默認」狀態。對於你給的例子,你可能會有類似的東西

<selector> 
    <item android:state_pressed="true" android:drawable="..." /> 
    <item android:state_enabled="true" android:drawable="..." /> 
    <item android:drawable="..." /> <!-- disabled --> 
</selector> 
+0

謝謝卡拉庫裏。我知道如何爲一個視圖創建一個選擇器,但我不知道是否可以爲不同的子視圖創建不同的選擇器,以及如何「同步」所有這些選擇器。 (也感謝關於TextView的建議,在這種情況下,我想我可以使用它,但我想知道如何創建任何按鈕佈局)。 –

+2

@FerranMaylinch你可以給子視圖android:duplicateParentState =「true」'使它們與它們的父視圖具有相同的狀態。在這種情況下,如果每個孩子都有一個可繪製的狀態列表,那麼這些孩子將使用與父代相同的狀態。 – Karakuri