【发布时间】:2018-11-24 16:51:25
【问题描述】:
我有一个RecyclerView 和多个TextViews。其中一个TextViews 填充有Spanned,通过从ArrayList<Object> 提取的标记String。在阅读了 Florina Muntenescu 的 this 教程后,我意识到我可以通过使用 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 的建议?
【问题讨论】:
标签: java android android-recyclerview textview spannable