2016-10-22 88 views
1

我已經覆蓋默認的按鈕樣式在我的應用程序像這樣所有的按鈕樣式:Android的覆蓋除對話框

<style name="ButtonStyle" parent="Base.Widget.AppCompat.Button"> 
     <item name="android:textAllCaps">false</item> 
     <item name="android:textSize">18sp</item> 
     <item name="android:textColor">@color/primaryTextContrast</item> 
     <item name="android:background">@drawable/button</item> 
    </style> 

這工作得很好,直到牛軋糖,但與牛軋糖也已經有變化(bug修復我認爲),這樣這種風格也適用於對話框中的按鈕,而在之前的版本中則沒有。這具有在白色背景上給對話框按鈕白色文本的效果。

在情況下,它相關的,button是一個9膜片在drawabledrawable-v21被覆蓋:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?attr/colorControlHighlight"> 
    <item android:drawable="?attr/colorPrimary"/> 
</ripple> 

的原色是黑暗的,並primaryTextContrast是白色的。由於某些原因,對話框在牛軋糖中不會出現黑色按鈕 - 它們看起來會選擇文本顏色,但不會顯示背景。因此,我需要讓對話框按鈕執行默認操作,或者使按鈕完全繼承黑色背景和白色文本的樣式。

+0

您是否找到解決方案?我面臨同樣的問題 – kirtan403

+0

不,我沒有。 – nasch

回答

2

@nasch,對話框按鈕使用按鈕欄樣式。在這種情況下,你可以不喜歡

<style name="buttonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog"> 
    <item name="android:textColor">@color/colorPrimary</item> 
</style> 

在你的主樣式定義,那麼你定義

<style name="MyCustomTheme" parent="Theme.AppCompat"> 
    <item name="buttonBarButtonStyle">@style/buttonBarButtonStyle</item> 
... 

希望這有助於。