Android 回收器视图项目中的非常长的文本非常滞后

问题描述 投票:0回答:1

我想实现快速滚动,因为现在当代码达到此值时非常滞后:

        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)

值得一提的是,这两个文本视图不需要显示完整的字符串。如果字符串比文本视图父级大小长,那么它应该尽可能多。

也许这样我就不会迟钝了...

我怎样才能实现这一目标?

java android android-recyclerview
1个回答
0
投票

您可以使用分页并获取特定范围的数据。就像如果你总共有 300 个项目,先获取前 10 个,然后再获取下 10 个,继续直到获得所有数据

对于项目描述,在回收器中最多显示 2 行,完整的详细信息可以在对话框或片段中显示。使用 maxLines 属性限制布局中描述文本的行数。

© www.soinside.com 2019 - 2024. All rights reserved.