Я только что обнаружил ключевое слово 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
Я что-то упустил?