【问题标题】:Best practices to use themes and styles使用主题和样式的最佳实践
【发布时间】:2017-05-13 17:24:42
【问题描述】:

我在某处读到,我们应该在 api 级别 14 之前使用全息主题,并且从级别开始就有材料设计,在这两者之间我们应该使用支持主题,无论是 v4 还是 v7,是真的吗?还有资源限定符和设计支持库是什么

谢谢

【问题讨论】:

    标签: java android styles android-theme androiddesignsupport


    【解决方案1】:

    不,最好的方法是创建单独的值文件夹 valuesvalues-v14values-v21。目前的最佳实践是使用 Theme.Appcompat,如果您使用扩展 AppcompatActivity 类,它就可用

     <!-- Main Base Theme -->
    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
    </style>
    

    如果您希望您的应用在 android 版本 14 及以下、14 以上但低于 21 或 21 及以上版本时看起来不同,您可以修改每个文件夹中的样式。

    Theme.AppCompat 之后的部分你可以随意更改,如果你想使用 Android 设计库中的 Toolbar,NoActionBar 很有用。

    【讨论】:

    • appcompatactivity 是在 v7 中引入的,所以我们应该使用基于 theme.appcompat 的主题,对吧?
    • 是的,您应该使用 AppCompatActiviy 以实现向后兼容性,并且您必须使用 appcompat 主题。如果您不这样做,我可以完全记得,但是如果我的记忆正确,您的应用程序就会崩溃。您可以通过为您的活动扩展 AppcompatActivity 但不设置 appcompat 样式来检查它
    • 如果我使用 Material Design 并且 mintarget 是 11,那么向后兼容性呢
    • 对于 appcompat 库,Mintarget 为 7。但现在即使是 14 台也不到设备总数的 1%。检查here
    • 所以我们现在应该使用材料设计,不管 mintargetsdk 是什么?
    猜你喜欢
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多