2014-10-30 77 views
2

對於特定視圖或層次結構視圖,是否有任何方法來覆蓋主題(活動樣式)屬性(如colorControlActivated)?覆蓋視圖或視圖層次結構的主題顏色*屬性

舉例來說,如果我有

<item name="colorControlActivated">@color/my_activated_color<item> 

在我的活動風格,會是可以覆蓋在其他窗口的風格,價值,如工具欄?添加一個'colorControlActivated'項目似乎沒有做任何事情

我目前的用例是我的應用欄工具欄中有一個SwitchCompat,並且我爲每個小部件設置的全局colorControlActivated屬性看起來不太好在工具欄的背景上。所以任何能夠幫助我改變工具欄中每個視圖的特定顏色的東西都會很棒。希望能夠在v21和v15 +上工作。

在一個稍微不相關的說明中,任何人都可以將我指向SwitchCompat的源代碼,我似乎無法在支持庫的源代碼中找到它。

回答

3

這並不回答我的一般問題,但確實回答了我的用例場景,因此它可能對其他人有用。

爲了覆蓋活動的colorAccent(或主題的任何其他屬性),我必須專門爲交換機創建ContextThemeWrapper,並在java中擴展交換機,以便可以應用該包裝器。

的代碼基本上是這樣的:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
ContextThemeWrapper wrapper = new ContextThemeWrapper(
     getSupportActionBar().getThemedContext(), R.style.CustomTheme); 
View.inflate(wrapper, R.layout.toolbar_switch, toolbar);