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

Layout пункт:

<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

измените родительское имя следующим образом: (без «Borderless.Colored»)

` <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>` 

, а затем установите его как «андроид: тема», как вы это делали.

+0

Спасибо, но не будет ли это делать обычную кнопку? нужен плоский – cfl