android - 为什么 `text_size_body` 在 AppCompat 库和 Android Lollipop 中有不同的大小?

标签 android material-design android-appcompat

v21\values.xml

<style name="TextAppearance.Material.Body1">
        <item name="textSize">@dimen/text_size_body_1_material</item>
</style>

文字大小

<dimen name="text_size_body_1_material">14sp</dimen>

values\values.xml

<style name="Base.TextAppearance.AppCompat.Body1">
        <item name="android:textSize">@dimen/abc_text_size_body_1_material</item>
</style>

文字大小

<dimen name="abc_text_size_body_1_material">16sp</dimen>

问题:Google 在 AppCompat 库和 Android Lollipop 中为 text_size_body 定义不同大小的原因是什么。

P.S.其他尺寸好像都一样。

最佳答案

通常,Android 首先会查看默认文件夹 values,以查找您通过 xml 资源定义的所有值(在您的示例中为 values/dimens.xml)。但在您的情况下,您已经定义了一个“重载”资源文件夹 v21,如果您的应用程序在 Android v21+ 的设备上运行,它会覆盖默认值。这就是文本在不同 Android 版本(v21+ 与 v20-)上看起来不同的原因。

参见 Android documentation about resources

关于android - 为什么 `text_size_body` 在 AppCompat 库和 Android Lollipop 中有不同的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27633984/

相关文章:

css - 控制 Material 设计精简版 td 高度

Android 浅色/深色主题操作栏文本

android - 如何为警报对话框中的图像按钮设置 onclick 监听器

Android抽屉导航菜单项无法突出显示所选项目

javascript - 为什么选择的选项隐藏在 react 中?

android - 是否可以更改我的主题 (AppCompat) 中的 AppBar 文本颜色?

安卓工作室错误 : cannot find symbol class AdapterViewCompat with compileSdkVersion 23 and buildToolsVersion '23.0.1'

android - Appcompact activity 和 action bar activity 的区别

android - 在 TextView 文本的一部分上指定 "strikethrough"

android - 自定义 Spannable = ImageSpan + BackgroundColorSpan + ClickableSpan