Material TextAppearance 对处理不同的 textSize 有用吗
Is Material TextAppearance usefull for handle different textSize
我刚发现 textAppearence 关键字和 TextAppearance.MaterialComponents
使用示例:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/proxima_nova_soft_bold"
android:text="@string/ads_header_last"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textColor="@color/charcoal_grey" />
如果我们看起来像 TextAppearance.MaterialComponents.Headline5
,我们就找到了这个
<style name="TextAppearance.MaterialComponents.Headline5" parent="TextAppearance.AppCompat.Headline">
<item name="fontFamily">sans-serif</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">24sp</item>
<item name="android:letterSpacing">0</item>
里面的 textSize
是 24sp 我很困惑,因为我认为 textAppearence 关键字可以管理所有屏幕设备的 textSize
如果我们使用
android:textAppearance="@android:style/TextAppearance.Material.Headline"
TextAppearance.Material.Headline
样式是
<style name="TextAppearance.Material.Headline">
<item name="textSize">@dimen/text_size_headline_material</item>
<item name="fontFamily">@string/font_family_headline_material</item>
<item name="textColor">?attr/textColorPrimary</item>
</style>
并且 @dimen/text_size_headline_material
正确地针对不同的屏幕尺寸使用不同的尺寸
<dimen name="text_size_headline_material">24sp</dimen>
<dimen name="text_size_headline_material">18sp</dimen>
etc...
为什么TextAppearance.MaterialComponents.Headline5 的配置不一样?
我不能使用 android:textAppearance="@android:style/TextAppearance.Material.Headline"
因为它需要 API 21
我是不是漏掉了什么?
TextAppearance.MaterialComponents.Headline5
是 <h5>
标签,所以它在样式中有固定的文本大小,这就是为什么如果你要使用这种样式你不能改变文本大小,这是 header标签
这对所有类型的设备都是一样的
要改变风格
用 header parent
制作你自己的 style
并在你的 TextView
中使用它
<style name="TvStyle" parent="TextAppearance.MaterialComponents.Headline5">
<item name="android:textSize">16sp</item>
</style>
我刚发现 textAppearence 关键字和 TextAppearance.MaterialComponents
使用示例:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/proxima_nova_soft_bold"
android:text="@string/ads_header_last"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textColor="@color/charcoal_grey" />
如果我们看起来像 TextAppearance.MaterialComponents.Headline5
,我们就找到了这个
<style name="TextAppearance.MaterialComponents.Headline5" parent="TextAppearance.AppCompat.Headline">
<item name="fontFamily">sans-serif</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">24sp</item>
<item name="android:letterSpacing">0</item>
里面的 textSize
是 24sp 我很困惑,因为我认为 textAppearence 关键字可以管理所有屏幕设备的 textSize
如果我们使用
android:textAppearance="@android:style/TextAppearance.Material.Headline"
TextAppearance.Material.Headline
样式是
<style name="TextAppearance.Material.Headline">
<item name="textSize">@dimen/text_size_headline_material</item>
<item name="fontFamily">@string/font_family_headline_material</item>
<item name="textColor">?attr/textColorPrimary</item>
</style>
并且 @dimen/text_size_headline_material
正确地针对不同的屏幕尺寸使用不同的尺寸
<dimen name="text_size_headline_material">24sp</dimen>
<dimen name="text_size_headline_material">18sp</dimen>
etc...
为什么TextAppearance.MaterialComponents.Headline5 的配置不一样?
我不能使用 android:textAppearance="@android:style/TextAppearance.Material.Headline"
因为它需要 API 21
我是不是漏掉了什么?
TextAppearance.MaterialComponents.Headline5
是 <h5>
标签,所以它在样式中有固定的文本大小,这就是为什么如果你要使用这种样式你不能改变文本大小,这是 header标签
这对所有类型的设备都是一样的
要改变风格
用 header parent
制作你自己的 style
并在你的 TextView
<style name="TvStyle" parent="TextAppearance.MaterialComponents.Headline5">
<item name="android:textSize">16sp</item>
</style>