0

Я разрабатываю приложение для Android, которое я хочу поддержать Material Design для устройств с 5.0 и более поздними версиями и устройств от 4.1 до 4.4.Альтернативные макеты

Я пользуюсь библиотекой appcompat, чтобы получить поддержку для более старых версий.

Теперь я столкнулся с атрибутами, которые присутствуют только в v21, например elevation.

Я могу создать папку layout-v21 и добавить туда свой макет активности, что приводит к довольно многому дублированию.

Вы делаете это по-другому?

Есть ли способ использовать стили для этого? Как я подклассы стиля от values к values-v21

ответ

1

Вот ссылка, что я использовал, что дает некоторую информацию о переопределении стилей/тема для V21 леденца: http://antonioleiva.com/material-design-everywhere/

По сути вы можете сделать в значениях/themes.xml

<style name="AppTheme" parent="AppTheme.Base"/> 

<style name="AppTheme.Base" parent="Theme.AppCompat"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimary</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

И тогда в значениях-V21/themes.xml

<style name="AppTheme" parent="AppTheme.Base"> 
    <item name="android:windowContentTransitions">true</item> 
    <item name="android:windowAllowEnterTransitionOverlap">true</item> 
    <item name="android:windowAllowReturnTransitionOverlap">true</item> 
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> 
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item> 
</style> 

Чтобы переопределить AppTheme для v21, но сохранить все свойства AppTheme.Base от pre-v21.

+0

Я пошел с ним. благодаря –

Смежные вопросы