У меня есть RecyclerView
с номером TextViews
.Один из них TextViews
заполняется Spanned
через пометку String
, взятую из ArrayList<Object>
.Прочитав этот учебник Флорины Мунтенеску, я понял, что могу улучшить свою производительность, используя Spannable Factory
.Моя самая большая проблема в том, что ее код написан на Kotlin
(а я еще не совсем там).
Насколько я могу судить, это ключевая информация,
Допустим, мы хотим повторно использовать TextView
и установить текст несколько раз, как в RecyclerView.ViewHolder
...
val spannableFactory = object : Spannable.Factory() {
override fun newSpannable(source: CharSequence?): Spannable {
return source as Spannable
}
}`
Установить объект Spannable.Factory
один раз сразу после того, как вы получите ссылку на ваш TextView.Если вы используете RecyclerView, делайте это, когда вы впервые раздуваете свои представления.
textView.setSpannableFactory(spannableFactory)
Итак, предположим, у меня есть простая RecyclerView adapter
настройка одного Spanned
TextView
.
@Override
public void onBindViewHolder(RecyclerViewHolder rvh, int position){
String string =arrayList.get(position).getValue();
Spanned spanned = getSpannedValue(string);
rvh.tv.setText(spanned);
}
Как я могу изменить свой код, чтобы использовать рекомендации Florina?