Различные стили colorControlActivated в Android

Это моя тема приложения:

<style name="BaseTheme" parent="Theme.AppCompat.Light">
   ...
   <item name="colorControlActivated">@color/default_orange</item>
   ...
</style>
...
<style name="Switch" parent="Material.Widget.Switch">
   <item name="colorControlActivated">@color/default_green</item>
</style>

и если я использую переключатель стиль:

<com.rey.material.widget.Switch
     style="@style/Switch"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:checked="false"/>

на colorControlActivated используется это один внутри BaseTheme (оранжевый) вместо переключатель один (зеленый).
Почему это происходит? Разве я не могу иметь разные colorControlActivated для разных взглядов?

Спасибо.

1 ответов


главная проблема заключается в том, что атрибут colorControlActivated в теме Действия имеет предпочтение этому атрибуту в любом пользовательском стиле, который вы определяете и применяете к определенным представлениям.

решение (и это решение переопределяет атрибут для всех элементов в одном действии точно так же) чтобы создать новую тему и применить эту тему к вашей деятельности в манифест. Эта тема может наследовать от основной темы и переопределять только атрибуты тебе нужно.

темы:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- items-->
    <item name="colorControlActivated">@android:color/white</item>
    <!-- items-->
</style>

<style name="lightAppTheme" parent="AppTheme" >
    <item name="colorControlActivated">@color/colorPrimary</item>
</style>

манифест:

<application
    android:name=".application.appname"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main"
        android:theme="@style/lightAppTheme"
        android:screenOrientation="portrait"></activity>
 </application>

Я надеюсь, что это поможет любому, кто входит в это, так как мне потребовалось несколько часов, чтобы заставить его работать.

для того, чтобы сделать различные элементы в той же деятельности, чтобы использовать разные colorControlActivated приписывает, идите к этому ответ.