2015-11-29 49 views
1

我爲自定義AppCompatButton創建了以下樣式。如何在按下時更改android AppCompatButton的文字顏色

<style name="AppTheme.secondary_button" parent="Base.Widget.AppCompat.Button"> 
    <item name="colorButtonNormal">@color/secondary_button_color</item> 
    <item name="colorControlActivated">@color/menu_blue</item> 
    <item name="android:colorButtonNormal">@color/secondary_button_color</item> 
    <item name="android:textColorPrimary">@color/gray</item> 
    <item name="android:textColor">@color/gray</item> 
</style> 

按下按鈕時改變文本顏色的屬性是什麼?

回答

1

要做到這一點,你只需要更換文字顏色你選擇指定:

事情是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:color="@color/white" /> 
    <item android:state_focused="true" android:color="@color/grey" /> <!-- (for accessibility) --> 
    <item android:color="@color/black" /> 
</selector> 

,然後分配給它這樣的: 機器人:文字顏色=「@繪製/ button_foreground_selector」

<android.support.v7.widget.AppCompatButton 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    style="@style/CustomAppCompatButtonStyle" 
    android:text="Hi, Neo"/> 

不點擊按鈕:

Not clicked

點擊的按鈕:

Clicked

風格我用:

<style name="CustomAppCompatButtonStyle" parent="Base.Widget.AppCompat.Button"> 
    <item name="colorButtonNormal">@color/red</item> 
    <item name="colorControlActivated">@color/blue</item> 
    <item name="android:colorButtonNormal">@color/green</item> 
    <item name="android:textColorPrimary">@color/gray</item> 
    <item name="android:textColor">@drawable/button_foreground_selector</item> 
</style> 
+0

謝謝您的回答,但這個解決方案沒有奏效... :( – Neo

+0

@ neo的我只是用我提出的自定義樣式和解決方案創建了一個AppCompat.Button的虛擬項目。這對我來說可以。我已經將它上傳到DropBox:https://www.dropbox.com/s/e1wamgtd06b20ne/NeoTestApp.zip?dl=0,你可以試試嗎? –

+0

還在上面的答案中添加了屏幕截圖和擴展描述。 –

相關問題