我想实现快速滚动,因为现在当代码达到此值时非常滞后:
holderOneElement.noteTitleText.setText(noteItem.getNoteTitle());
holderOneElement.noteDetailsText.setText(noteItem.getNoteDetails());
这段代码位于recyclerview的
onBindViewHolder()
内部。
事实是我有很多(大约 30 个 recyclerview 项目,而且还在不断增长),这两个字符串特别是 noteItem.getNoteDetails() 非常长,当我用以下代码检查宽度时,宽度甚至达到了 60000 以上:
Rect bounds = new Rect();
Paint textPaint = holderOneElement.noteDetailsText.getPaint();
textPaint.getTextBounds(noteItem.getNoteDetails(), 0, noteItem.getNoteDetails().length(), bounds);
int tvWidthWithText = bounds.width();
我的想法是仅显示尽可能多的
noteItem.getNoteDetails()
文本,因为它可以适合家长的视图,noteItem.getNoteDetails().replace(start, end)
。
值得一提的是,这两个文本视图不需要显示完整的字符串。如果字符串比文本视图父级大小长,那么它应该尽可能多。
也许这样我就不会迟钝了...
我怎样才能实现这一目标?
您可以使用分页并获取特定范围的数据。就像如果你总共有 300 个项目,先获取前 10 个,然后再获取下 10 个,继续直到获得所有数据
对于项目描述,在回收器中最多显示 2 行,完整的详细信息可以在对话框或片段中显示。使用 maxLines 属性限制布局中描述文本的行数。