如何在 spannable 中的 2 行之间添加边距或填充?

How can I add margin or padding between 2 lines in spannable?

我正在使用 spannable 在 2 行中创建一个字符串,其中每行具有不同的字体。
除了一件事,它工作正常。
如何在第一个字符串和第二个字符串之间添加一些边距?

所以我这样做:

String a = "First line";  
String b = "Second line";  
SpannableString spannableName = new SpannableString(a + "\n" + b);  
spannableName.setSpan(new TextAppearanceSpan(activity, R.style.my_style),0,a.length(), 0);  

和my_style

<style name="my_style">
        <item name="android:layout_marginBottom">100dp</item>
        <item name="android:paddingBottom">10dp</item>
        <item name="android:textSize">@dimen/size</item>
        <item name="android:textColor">@color/mycolor</item>
    </style>  

我做错了什么?

我想在 ab 之间添加一些 padding/margin。
我的样式中的 paddings/margins 很大,因为我不确定它们是否适用(测试编号)

那必须是您正在使用的 UI 控件的 属性。

我假设您将文本设置为 TextView。您可以使用 textView.setLineSpacing(addvalue, multiplyValue)。这会将 addValue 个单位添加到间距并将其乘以 multiplyValue 倍。

同样,如果你想通过样式设置它,你可以将这些值添加到你的样式中:

<item name="android:lineSpacingExtra">SoemDPValue</item>
<item name="android:lineSpacingMultiplier">someNumber</item>

这里是你如何使用 RelativeSizeSpan 来做到这一点:

String a = "First line";
String b = "Second line";
SpannableString spannableName = new SpannableString(a + "\n" + b);
spannableName.setSpan(new TextAppearanceSpan(activity, R.style.my_style),0,a.length(), 0);
spannableName.setSpan(new RelativeSizeSpan(1.5f), a.length(), a.length() + 1, 0);

RelativeSizeSpan 将使“\n”字符比 "a" 和 "b" 字符串大 1.5。