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

时间:2014-12-24 08:40:21

标签: android android-appcompat material-design material

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.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。其他尺码似乎相同。

2 个答案:

答案 0 :(得分:2)

通常情况下,Android会首先查看您通过xml资源定义的所有值的默认文件夹(在您的情况下为 values / dimens.xml )。但在你的情况下,你已经定义了一个&#34;重载&#34;资源文件夹 v21 ,如果您的应用在Android v21 +设备上运行,则会覆盖默认值。这就是为什么文本在不同的Android版本上看起来不同(v21 + vs v20 - )。

请参阅Android documentation about resources

答案 1 :(得分:0)

我认为 abc _ 前缀值适用于ActionBarCompat。所以它是ActionBar的正文文本大小。