textview.getLineCount always 0 in android

前端 未结 6 1555
执笔经年
执笔经年 2020-11-30 04:28

I\'m trying to dynamically resize my textview but getlinecount() method always returns me 0 even after settext() and invalidate(). I\'m using the following code:



        
6条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-30 05:21

    actually TextView.getLineCount() rely on TextView.mLayout.getLineCount but TextView.mLayout is lazy init before onMeasure, you can do like this:

           if (holder.contentTV.getLayout() == null) {
                holder.contentTV.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
                    @Override
                    public boolean onPreDraw() {
                        holder.contentTV.getLineCount();
                        holder.contentTV.getViewTreeObserver().removeOnPreDrawListener(this);
                        return true;
                    }
                });
            } else {
                holder.contentTV.getLineCount();
            }
    

提交回复
热议问题