我正在尝试使用RecyclerView
实现评论部分样式的布局。我有一个CharSequence
个对象列表(每个对象都是Html.fromHtml(String, null, null)
的结果),我用它来填充RecyclerView
。
以下是RecyclerView
布局:
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
以下是TextView
布局:
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:lineSpacingMultiplier="1.4"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textIsSelectable="true"
android:textSize="15sp"/>
以下是ViewHolder
:
public final class ItemHolder extends RecyclerView.ViewHolder {
@Bind(R.id.text) TextView text; // ButterKnife
public ItemHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
text.setMovementMethod(new LinkMovementMethod());
}
public void bind(CharSequence cs) {
text.setText(cs);
}
其余的很标准。 RecyclerView
被赋予LinearLayoutManager
和Adapter
,从列表中读取并创建ViewHolder
个实例。我没有调用setHasFixedSize(true)
,因为我希望能够交换适配器的内容,并且项目数可能并不总是相同。
该设置适用于大多数输入,但问题是某些CharSequence
超过100行,滚动时RecyclerView
在到达之前暂停约半秒他们然后继续滚动。它也不会发生一次。当我向上滚动回到项目时,它会再次冻结,然后每次我将项目滚出视图并向下滚动到该项目时,视图会再次冻结。我该如何解决这个问题?