【问题标题】:Parent style for TextView style with AppCompat usage使用 AppCompat 的 TextView 样式的父样式
【发布时间】:2017-04-26 11:32:35
【问题描述】:

如果我想设置全局 textViewStyle 并保持与 AppCompat 的向后兼容性,我应该使用什么父样式?我找不到像 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>

【问题讨论】:

  • 你试过不设置父母吗?就是这个:&lt;style name="GlobalTextViewStyle"&gt;。或者设置parent 属性的值很重要?我现在也有同样的问题,但没有任何合适的决定。 如果您使用 AppCompat,我认为使用 android:... 作为父级是不好的。

标签: android textview android-support-library android-appcompat android-styles


【解决方案1】:

您只需要扩展TextAppearance.AppCompat 样式并覆盖必要的值:

<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>

【讨论】:

  • 我不知道为什么,但它不起作用。当我使用 Luiz Fernando Salvaterra 时,解决方案样式正确应用于所有文本视图。
  • @AppiDevo,这意味着您应该支持并接受 Luiz 的回答。
【解决方案2】:

如果你想在你的应用中为你所有的TextView's设置这个样式,你可以这样做:

<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>

【讨论】:

    【解决方案3】:
    <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>
    

    【讨论】:

      【解决方案4】:

      我们也可以为AppCompat 小部件尝试这个。

      <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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-03
        • 2015-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多