Textview的getLineCount返回0

本文介绍了解决TextView在未完全渲染时获取行数返回0的问题。通过使用OnGlobalLayoutListener监听视图加载完成来准确获取TextView的行数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在项目中,遇到这样的状况,在用TextView时,获取TextView的行数(getLineCount),返回0;


 原因:Textview没有渲染完成,就调用getLineCount()时,是返回为零的;

 

解决方法:百度得到的解决方法,view布局加载, 可用OnGlobalLayoutListener() 监听view的加载或变化。


Example:  

    

  1. ViewTreeObserver observer = tv.getViewTreeObserver(); // textAbstract为TextView控件  
  2.             observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {  
  3.   
  4.                 @Override  
  5.                 public void onGlobalLayout() {  
  6.                     ViewTreeObserver obs = tv.getViewTreeObserver();  
  7.                     obs.removeGlobalOnLayoutListener(this);  
  8.                     if (tv.getLineCount() >= 2) {  
  9.                         System.out.println("行数" + tv.getLineCount());  
  10.                     }  
  11.                 }  
  12.             });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值