RecyclerView在TextView中没有返回正确的行数

时间:2017-04-19 17:40:52

标签: android android-recyclerview android-adapter

在我的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));
        }
    });
}

2 个答案:

答案 0 :(得分:1)

您可以做的是在Textview上放置ViewTreeObserver并监听全局布局事件。你应该在那里计算你的行号

答案 1 :(得分:0)

不确定你想要实现什么,但你似乎做错了。特别是我不喜欢这个Runnable。至于getLineCount() - 它只会在布局通过后给你正确的行数。这意味着TextView必须至少绘制一次。