Как я могу добавить поля или отступы между двумя строками в spannable?

Я использую spannable для создания строки в 2 строки, где каждая строка имеет свой шрифт.
Это работает нормально, за исключением одной вещи.
Как добавить отступ между первой строкой и второй строкой?

So I do:

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

и мой_стиль

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

Что я делаю не так?

Я хочу иметь отступы/поля между a и b.
Отступы/поля в моем стиле большие, потому что я не был уверен, применяются ли они или нет (тестовые числа)


person Jim    schedule 18.08.2015    source источник
comment
проверьте этот ответ ссылка   -  person Khaled Lela    schedule 18.08.2015
comment
Вы проверили этот stackoverflow. com/questions/27198155/   -  person Ajit Kumar Dubey    schedule 18.08.2015


Ответы (2)


Это должно быть свойство элемента управления пользовательского интерфейса, который вы используете.

Я предполагаю, что вы устанавливаете текст в TextView. Вы можете использовать textView.setLineSpacing(addvalue, multiplyValue). Это добавит addValue единиц к интервалу и умножит его в multiplyValue раза.

Точно так же, если вы хотите установить его через стиль, вы можете добавить следующие значения в свой стиль:

<item name="android:lineSpacingExtra">SoemDPValue</item>
<item name="android:lineSpacingMultiplier">someNumber</item>
person N.T.    schedule 19.08.2015

Вот как это можно сделать с помощью 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" в 1,5 раза больше, чем строки "a" и "b".

person Herve Thu    schedule 05.08.2016