5

What parent style should I use if I want to set global textViewStyle and maintain backward compatibility with AppCompat? I can't find something like Widget.AppCompat.TextView :

<style name="Base_AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="android:textViewStyle">@style/GlobalTextViewStyle</item>

</style>

<style name="GlobalTextViewStyle" parent="?????">
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item>
</style>
AppiDevo
  • 3,195
  • 3
  • 33
  • 51
  • possible duplicate of : http://stackoverflow.com/questions/3078081/setting-global-styles-for-views-in-android – rafsanahmad007 Apr 26 '17 at 11:41
  • Did you tried to don't set a parent? Just this: ` – nick Aug 12 '18 at 16:39

4 Answers4

7

You just need to extend TextAppearance.AppCompat style overriding necessary values:

<style name="Base_AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="android:textAppearance">@style/MyTextAppearance</item>

</style>

<style name="MyTextAppearance" parent="TextAppearance.AppCompat">
        <item name="android:textColor">?android:textColorPrimary</item>
        <item name="android:textColorHint">?android:textColorHint</item>
        <item name="android:textColorHighlight">?android:textColorHighlight</item>
        <item name="android:textColorLink">?android:textColorLink</item>
        <item name="android:textSize">@dimen/abc_text_size_body_1_material</item>
        <item name="textColor">?textColorPrimary</item>
        <item name="textColorHighlight">?textColorHighlight</item>
        <item name="textColorHint">?textColorHint</item>
        <item name="textColorLink">?textColorLink</item>
        <item name="textSize">16sp</item>
        <item name="textStyle">normal</item>
</style>
azizbekian
  • 60,783
  • 13
  • 169
  • 249
2

If you want to set this style for all your TextView's in your app, you can do something like this:

<resources>
<style name="YourTheme" parent="android:YourParentThTheme">
    <item name="android:textViewStyle">@style/GlobalTextViewStyle </item>
</style>

<style name="GlobalTextViewStyle" parent="android:Widget.TextView">
    <item name="android:textColor">#FF000</item>
    <item name="android:textStyle">bold</item>
</style>
</resources>
Luiz Fernando Salvaterra
  • 4,192
  • 2
  • 24
  • 42
1
<style name="normal_text_white" parent="@android:style/TextAppearance.Medium">
    <item name="android:textColor">@color/white_color</item>
    <item name="android:textSize">@dimen/small_text_size</item>
    <item name="android:textColorHint">@color/hint_color</item>
</style>
Anmol317
  • 1,356
  • 1
  • 14
  • 31
0

We can try this as well for AppCompat widget.

<style name="TitleStyle" parent="TextAppearance.AppCompat">
        <item name="android:gravity">center_horizontal</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textSize">26sp</item>
</style>
Jose
  • 2,479
  • 1
  • 20
  • 17