在项目中,遇到这样的状况,在用TextView时,获取TextView的行数(getLineCount),返回0;
原因:Textview没有渲染完成,就调用getLineCount()时,是返回为零的;
解决方法:百度得到的解决方法,view布局加载, 可用OnGlobalLayoutListener() 监听view的加载或变化。
Example:
- ViewTreeObserver observer = tv.getViewTreeObserver(); // textAbstract为TextView控件
- observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
- @Override
- public void onGlobalLayout() {
- ViewTreeObserver obs = tv.getViewTreeObserver();
- obs.removeGlobalOnLayoutListener(this);
- if (tv.getLineCount() >= 2) {
- System.out.println("行数" + tv.getLineCount());
- }
- }
- });