在我的RecyclerView适配器中,我在TextView上使用getLineCount()
来返回TextView所具有的行数,但每次都返回0(零)。
如果我向下滚动RecyclerView,然后向上滚动,它将返回正确的行数。
为什么要这样做?如何才能使它最初返回正确的行数?
这是我的RecyclerView适配器中的onBindViewHolder()
方法:
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
Post post = posts.get(position);
holder.postText.setText(post.getText());
holder.postText.post(new Runnable() {
@Override
public void run() {
int numLines = holder.postText.getLineCount();
Log.d("# of lines", String.valueOf(numLines));
}
});
}
答案 0 :(得分:1)
您可以做的是在Textview上放置ViewTreeObserver并监听全局布局事件。你应该在那里计算你的行号
答案 1 :(得分:0)
不确定你想要实现什么,但你似乎做错了。特别是我不喜欢这个Runnable
。至于getLineCount()
- 它只会在布局通过后给你正确的行数。这意味着TextView必须至少绘制一次。