2017-02-17 180 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

相关问题