【问题标题】:Override theme color* attributes for view or a view hierarchy覆盖视图或视图层次结构的主题颜色 * 属性
【发布时间】:2014-10-30 08:00:21
【问题描述】:

是否有任何方法可以覆盖特定视图或视图层次结构的主题(活动样式)属性,例如 colorControlActivated?

例如,如果我有

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

在我的活动样式中,是否可以在另一个小部件的样式(例如工具栏)中覆盖该值?添加“colorControlActivated”项目似乎没有任何作用

我当前的用例是我的应用栏工具栏中有一个 SwitchCompat,我为每个小部件设置的全局 colorControlActivated 属性在工具栏的背景上看起来不太好。因此,任何可以帮助我更改工具栏中每个视图的特定颜色的东西都会很棒。希望在 v21 和 v15+ 上都能正常工作。

在一个稍微无关的注释中,谁能指出 SwitchCompat 的源代码,我似乎无法在支持库的源代码中找到它。

【问题讨论】:

    标签: android android-appcompat


    【解决方案1】:

    这没有回答我的一般问题,但确实回答了我的用例场景,因此它可能对其他人也有用。

    为了覆盖活动的 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多