【问题标题】:Alternative Layouts替代布局
【发布时间】:2014-11-04 17:22:49
【问题描述】:

我正在开发一个 Android 应用程序,我希望为运行 5.0+ 的设备和 4.1 到 4.4 的设备支持 Material Design。

我正在使用appcompat 库来获得对旧版本的一些支持。

现在我面临着仅存在于 v21 中的属性,例如 elevation

我可以创建一个layout-v21 文件夹并在那里添加我的活动布局,这会导致相当多的重复。

你有其他方法吗?

有没有办法为此使用样式?如何将样式从values 子类化为values-v21

【问题讨论】:

    标签: android android-layout android-5.0-lollipop code-duplication


    【解决方案1】:

    这是我使用的一个链接,它提供了一些关于覆盖 v21 Lollipop 样式/主题的信息:http://antonioleiva.com/material-design-everywhere/

    基本上你可以在 values/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>
    

    然后在 values-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>
    

    覆盖 v21 的 AppTheme,但保留 v21 之前的 AppTheme.Base 的所有属性。

    【讨论】:

    • 我同意了。谢谢
    猜你喜欢
    • 2013-11-09
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2013-05-20
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多