2017-02-14 4 views
0

Я две темы,
AppTheme - для всего приложения и
AppTheme.NoActionBar - для навигационной деятельностиКак сослаться на стиль, который содержит текстовые элементы стайлинга

В обеих темах я стиль текста.

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:fontFamily">sans-serif-light</item> 
    <item name="android:textColor">@color/black_shade</item> 
    <item name="android:textSize">@dimen/text_size</item> 
    <item name="android:windowFullscreen">true</item> 
</style> 

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:fontFamily">sans-serif-light</item> 
    <item name="android:textColor">@color/black_shade</item> 
    <item name="android:textSize">@dimen/text_size</item> 
    <item name="android:windowFullscreen">true</item> 
</style> 

Как сгруппировать текстовые элементы и передать их в этих двух темах?

Я пробовал:

<style name="TextAppearance" > 
    <item name="android:fontFamily">sans-serif-light</item> 
    <item name="android:textColor">@color/black_shade</item> 
    <item name="android:textSize">@dimen/text_size</item> 
    <item name="android:windowFullscreen">true</item> 
</style> 

И называют его

<item name="textAppearance">@style/TextAppearance</item> 

Это не работает.
Как это достичь?

+0

К какой вид вы имеете в виду текст-стиль? – tahsinRupam

+0

В текстовом редакторе «TextView» – Prabs

ответ

2

См. https://stackoverflow.com/a/3166865/5018798

Мой пример (на основе выше):

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 

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

    </style> 

    <style name="AppTheme.NoActionBar" parent="AppTheme"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowFullscreen">true</item> 

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

    <style name="TextAppearance" parent="android:Widget.TextView"> 
     <item name="android:textColor">#F00</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">55sp</item> 
    </style> 

</resources> 
+0

Mm ..' android: textViewStyle'. Позвольте мне попробовать. – Prabs

+0

Я пытаюсь сделать то же самое для 'EditText', изменив родителя на' android: Widget.EditText', но он не работает. – Prabs

0

Вы можете сделать следующее:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
    ... 
    <item name="android:textColorPrimary">Your color</item> 
    ... 
</style> 

и установить тему применения в манифест Apptheme:

<application 
    ... 
    android:theme="@style/AppTheme" 
    .... 
    > 

И вы должны сделать это, конечно, в противном случае цвет текста не изменится:

<style name="AppTheme.NoActionBar" parent = "AppTheme"> 
+1

может быть 100-х элементов «TextView» в моем приложении. И 'textColor' - не единственный атрибут, который у меня есть – Prabs

Смежные вопросы