2014-10-30 43 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);