Различные стили 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 приписывает, идите к этому ответ.