Я использую в своем приложении собственный шрифт Barlow. Однако мне нужно указать bottomPadding
в каждом TextView
, потому что шрифт не отцентрирован по вертикали. Вот что я сделал:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
...
<item name="android:textViewStyle">@style/Widget.Comblat.TextView</item>
<item name="textAppearanceBody1">@style/TextAppearance.Comblat.Body1</item>
<item name="textAppearanceHeadline3">@style/TextAppearance.Comblat.H3</item>
...
</style>
<!-- TextView -->
<style name="Widget.Comblat.TextView" parent="Widget.MaterialComponents.TextView">
<item name="android:paddingBottom">1.6dp</item>
</style>
<!-- CustomFont -->
<style name="TextAppearance.Comblat.Body1" parent="TextAppearance.MaterialComponents.Body1">
<item name="fontFamily">@font/mbarlow_condensed_regular</item>
<item name="android:textStyle">normal</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">16sp</item>
<item name="android:letterSpacing">0</item>
<item name="android:includeFontPadding">false</item>
<item name="android:textColor">@color/colorDarkPrimary60</item>
</style>
<style name="TextAppearance.Comblat.H3" parent="TextAppearance.MaterialComponents.Headline3">
<item name="fontFamily">@font/mbarlow_condensed_semibold</item>
<item name="android:textColor">@color/colorDarkPrimary</item>
<item name="android:textStyle">normal</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">48sp</item>
<item name="android:includeFontPadding">false</item>
<item name="android:letterSpacing">-0.023</item>
</style>
Здесь я установил paddingBottom
на 1.6dp
. Но это работает только для шрифта Body1 (моя формула для paddingBottom
равна 0.1*font_size
), для H3 я хотел бы установить 4.8dp
.
Есть ли способ установить paddingBottom
для все TextView, но в зависимости от размера шрифта? Я предположил, что это возможно программно или путем переопределения TextView. Конечно, я мог бы установить собственный стиль для каждого TextView в моих макетах, но, эй, я ленивый, ребята
Спасибо!