Поле установлено в первой строке textView
Я хочу установить начальное поле только для первой строки TextView (не первой строки каждого абзаца)? Я использовал следующий код:
SpannableString s = new SpannableString("this is a test"+"\n"+"this is a test");
s.setSpan(new android.text.style.LeadingMarginSpan.Standard(30, 0), 0, s.length(), 0);
textView .setText(s);
Здесь начальное поле устанавливается для всех строк абзаца.. Я не хочу этого. Я хочу, чтобы начальная маржа применялась только для первой строки.. Пожалуйста, помогите..
2 ответа
Как было предложено здесь, я также думаю, что лучшим решением будет просто добавить несколько пробелов в начале. Если вам нужно только поле для запаса в самой первой строке TextView
Я не вижу причин, по которым вам нужно было бы сделать что-то действительно продвинутое.
Если вам нужно изменить или использовать текст в TextView на более позднем этапе, вы можете просто использовать substring()
способ получить только часть строки, т.е. s.substring(2, s.length());
Это не идеальное решение, но я думаю, что оно подойдет.
Вы на самом деле уже ответили на свой вопрос.
Все, что вам нужно сделать, это установить длину пролета в 1 вместо s.length().
if (s.lenght() > 0) {
s.setSpan(new android.text.style.LeadingMarginSpan.Standard(30, 0), 0, 1, 0);
}
Таким образом, маржа будет применяться только к первому абзацу.