当我通过TextAppearance

时间:2019-12-10 11:14:54

标签: android textview styles

当我通过android:maxLines间接应用TextAppearance时为什么会忽略它

  <style name="TextAppearance.Footer">
    <item name="android:ellipsize">end</item>
    <item name="android:maxLines">1</item>
  </style>

  <style name="FooterButton">
    <item name="android:layout_gravity">center</item>
    <item name="android:textAppearance">@style/TextAppearance.Footer</item>
  </style>

我对documentation

的textAppearance限制一无所知

当我直接设置属性时有效:

  <style name="FooterButton">
    <item name="android:layout_gravity">center</item>
    <item name="android:ellipsize">end</item>
    <item name="android:maxLines">1</item>
  </style>

1 个答案:

答案 0 :(得分:0)

你是对的。该文档未指定任何限制。但是鉴于它是android文档,因此将缺少很多细节。在源代码中,可以通过textAppearance设置以下属性。

    int mTextColorHighlight = 0;
    ColorStateList mTextColor = null;
    ColorStateList mTextColorHint = null;
    ColorStateList mTextColorLink = null;
    int mTextSize = 0;
    String mFontFamily = null;
    Typeface mFontTypeface = null;
    boolean mFontFamilyExplicit = false;
    int mTypefaceIndex = -1;
    int mStyleIndex = -1;
    int mFontWeight = -1;
    boolean mAllCaps = false;
    int mShadowColor = 0;
    float mShadowDx = 0, mShadowDy = 0, mShadowRadius = 0;
    boolean mHasElegant = false;
    boolean mElegant = false;
    boolean mHasFallbackLineSpacing = false;
    boolean mFallbackLineSpacing = false;
    boolean mHasLetterSpacing = false;
    float mLetterSpacing = 0;
    String mFontFeatureSettings = null;

mStyleIndex ,但这是文字样式-bolditalic

您必须通过xml中的styleandroid:maxLines进行设置。

作为选择的理由,我可以说行数不属于文本外观的标准,而是属于视图的样式。