Как я могу объединить два разных охватываемых объекта одной строки
У меня два spannable
Объект для той же строки, и оба имеют разные стили. Мне нужно объединить все spannable
объекты и отображать все стили в TextView
,
От одного из вернувшихся из Html.fromHtml()
и второй возврат StyleSpan (полужирный).
Я старался TextUtils.concate(htmlSpan, boldSpan)
но он отображал одну и ту же строку два раза, потому что он добавляет spannable
Я хочу отобразить все стили в одну строку.
2 ответа
Использование SpannableStringBuilder
но вы можете создавать пролеты внутри append
метод
SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(String.valueOf(Html.fromHtml(stringToConvert));
sb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
А потом просто установить sb
на ваш взгляд
textView.setText(sb);
РЕДАКТИРОВАТЬ:
Я видел ваш отредактированный вопрос: выше я переписал этот код, чтобы заставить его применять два spannables к одной строке. Я думаю, что вы не можете объединить разные объекты в одну строку. Я считаю, что обходной путь - применить один диапазон, затем преобразовать в строку, а затем применить второй диапазон. Таким образом, он будет применять два пролета к одной строке. Или вы можете управлять своим полужирным шрифтом через xml, если он вам всегда нужен жирным шрифтом
Наконец, я нашел, что у моего решения Html.fromHtml() нет параметра типа spannable, поэтому сначала я получил SpannableStringBuilder из Html.fromHtml() и перенес его в метод Bold StyleSpannable, а затем в TextView, и он работает потрясающе.
Он сохраняет HTML-код в смелом методе StyleSpannable.
Спасибо, ребята, за ваш отзыв и ответ на мой ответ.
SpannableStringBuilder spannable = setTextViewHTML(content);
common.convertBoldString(spannable);
textView.setText(spannable);
Для приведенного выше кода содержимое представляет собой переменную, которая содержит слова, которые я люблю выделять жирным шрифтом, а также теги HTML.
convertBoldString
это метод в моем классе общих методов, который имеет параметр SpannableStringBuilder
и этот объект использовать, чтобы установить полужирный StyleSpan.