2017-02-17 176 views
0

當用戶單擊它時,需要更改材料平面/無邊框按鈕的顏色。我當前的設置適用於凸起按鈕,但不適用於無邊界按鈕。colorControlHighlight在按下時不會改變平面按鈕的顏色

風格我使用,按下時colorControlHighlight應該改變顏色?:

<style name="PrimaryFlatButton" parent="Widget.AppCompat.Button.Borderless.Colored"> 
<item name="colorButtonNormal">@color/primary_color</item> 
<item name="colorControlHighlight">@color/primary_color_dark</item> 
<item name="colorAccent">@color/primary_color</item> 
<item name="android:textColor">@color/white_color</item> 

版面項目:

<Button 
    android:id="@+id/Btn_SignUp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:theme="@style/PrimaryFlatButton" /> 

爲什麼提出按鈕的工作,但不是無邊界的?

回答

0

你需要改變什麼是類似於此

在styles.xml東西把這個

<style name="ButtonTheme" parent="Theme.AppCompat.Light"> 
     <item name="colorControlHighlight">@color/button_highlight</item> 
     <item name="colorButtonNormal">@color/colorPrimaryDark</item> 
     <item name="colorControlActivated">@color/button_highlight</item> 
</style> 

和XML佈局按鈕將其添加爲按鈕主題

<Button 
android:id="@+id/sign_in_button" 
android:theme="@style/ButtonTheme" 
//Other parameters as usual 
/> 
+0

爲什麼是父Theme.Appcompat.Light而不是Widget.AppCompat.Button.Borderless.Colored? – cfl

+0

您需要指定與您的應用程序對齊的應用程序主題 – Stallion

0

更改父母名稱如下:(不含「無邊界。色」)

` <style name="PrimaryFlatButton" parent="Widget.AppCompat.Button"> 
     <item name="colorButtonNormal">@color/primary_color</item> 
     <item name="colorControlHighlight">@color/primary_color_dark</item> 
     <item name="colorAccent">@color/primary_color</item> 
     <item name="android:textColor">@color/white_color</item> 
    </style>` 

然後像你剛纔那樣將它設置爲「android:theme」。

+0

謝謝 - 但這不會使它成爲一個正常的按鈕嗎?需要一個平坦的 – cfl

相關問題