gpt4 book ai didi

android - 在 RecyclerView 适配器中获取 TextView 行数?

转载 作者:搜寻专家 更新时间:2023-11-01 09:35:43 27 4
gpt4 key购买 nike

我正在尝试计算 RecyclerView 适配器中 TextView 的行数。

正在关注 answers from other questions (尽管与 RecyclerViews 无关),我尝试将其添加到我的 onBindViewHolder 方法中:

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
Message message = messages.get(position);

holder.textView.setText(message.getMessage());

holder.textView.setVisibility(View.VISIBLE);

// Get the number of lines
holder.textView.post(new Runnable() {
@Override
public void run() {
int lineCount = holder.textView.getLineCount();

Log.d("COUNT", String.valueOf(lineCount));
}
});
}

但是当我打开我的应用程序时,第一个 RecyclerView 项目最初会显示 COUNT 0(即使它有 5 行)。但是当我向下滚动几个项目然后向上滚动到第一个项目时,它会显示正确的行数 (COUNT 5)。

那我做错了什么?

最佳答案

textView 是对布局管理器中转换 View 的引用。当执行 run() 时,holder.textView 可能会在另一个项目中使用。

已更新

如果你快速滚动,一些 View 可能不会准备好。您可以检查当前 View 中的文本等于消息。

Message message = messages.get(position);

holder.textView.setText(message.getMessage());

holder.textView.setVisibility(View.VISIBLE);

// Get the number of lines
holder.textView.post(new Runnable() {
@Override
public void run() {
if (holder.textView.getText().toString().equals(message.getMessage()) {
int lineCount = holder.textView.getLineCount();
Log.d("COUNT", String.valueOf(lineCount));
}
}
});

关于android - 在 RecyclerView 适配器中获取 TextView 行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376915/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com