android:lineSpacingMultiplier在android:textAppearance中不起作用

loe*_*chg 5 android android-textattributes android-styles

我正在尝试添加android:lineSpacingMultipliertextAppearance样式(android:textAppearance),但无法正常工作。难道我做错了什么?

TextAppearance样式:

<style name="TextAppearance.Body1" parent="TextAppearance.AppCompat.Body1">
      <item name="android:lineSpacingMultiplier">1.25</item>
</style> 
Run Code Online (Sandbox Code Playgroud)

使用方式:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="This is body 1\nThis is body 1"
    android:textAppearance="TextAppearance.Body1"
    />
Run Code Online (Sandbox Code Playgroud)

loe*_*chg 7

无论出于何种原因,android:lineSpacingMultiplier它都不是您的产品中的一项textAppearance。您要么直接将其设置为TextView属性(使用android:lineSpacingMultiplier),要么创建一个常规样式来“包装”设置textAppearancelineSpacingMultiplier

建立风格

<style name="TextBody1">
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Body1</item>
    <item name="android:lineSpacingMultiplier">1.25</item>
</style>
Run Code Online (Sandbox Code Playgroud)

要么

<style name="TextBody1" parent="TextAppearance.AppCompat.Body1">
    <item name="android:lineSpacingMultiplier">1.25</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后通过style而不是android:textAppearance

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="This is body 1\nThis is body 1"
    style="@style/TextBody1"
    />
Run Code Online (Sandbox Code Playgroud)