android获取textview的行数

原创 2017年01月03日 14:45:59

最近做一个需求要判断Textview的行数。那具体应该怎么做呢?直接用代码解释。
Android中有个方法是:mTextView.getLineCount() ;
看似用这个方法就可以解决,但真正使用时候发现返回总是0。看了一下官方注释:

/**
* Return the number of lines of text, or 0 if the *internal Layout has notbeen built.
*/

注释是说如果Layout方法没有构建完成返回0,只有当Layout完成才会返回正确的行数。那我们怎么保证在Layout执行完去调用获取行数的方法呢?
解决方法是:

    mTextView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            Log.e(TAG, "行数"+mTextView.getLineCount());
            if(mTextView.getLineCount()>0){
                mTextView.getViewTreeObserver()
                .removeOnGlobalLayoutListener(this);
            }
        }
    });

当TeXtView在绘制的时候就会回调这个方法,注意当我们得到了想要的值之后注意移除GlobalOnLayoutListener避免多余的执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android中获取TextView行数

Android 获取TextView行数 项目中发现,如果直接通过TextView.getLineCount()方法获取行数时,总是0,研究发现,setText()后立即调用getLineCount(...

Android textView 获取行数

Android textView 计算行数 今天要做一个功能,给textView赋值,如果大于三行,初始化显示三行多出的用省略号代替,在下面显示查看更多,小于三行,隐藏查看更多,这个需求本来很简单,...

Android 获取textView高度的N种方式

TextView在绘制完成之前不管是getHeight方法还是getMeasuredHeight方法拿到的都是0.然而有些地方需要在TextView绘制完毕后就拿到TextView的高度甚至行数,本文...

在TextView显示前测量字符串设置显示行数

在android开发中我们有时候希望动态设置TextView的显示行数,这时我们就需要知道需要显示的字符串在TextView显示的宽度,是否超出了TextView的宽度,需要两行显示。实现如下: ...

android中获取TextView行数

我看了一些关于TextView获取行数的方法,避免误区,我写一下总结: 1、TextView获取行数的方法是textview.getLineCount(); 2、在TextView设置setTex...

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

利用K-means聚类算法根据经纬度坐标对中国省市进行聚类

K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...

source insight的查找功能

source insight是一款很好的c语言的程序编辑器,方便对project管理,方便程序的阅读和编辑。查找功能使用十分频繁,选项较多,与其它软件的查找功能也类似,下面对英文版的查找功能,做简单说...
  • kobesdu
  • kobesdu
  • 2014年07月24日 14:53
  • 35856

第十一章全部上机代码

上机练习1 --查询每个年级的总学时数,并按照升序排列。 SELECT SUM(ClassHour) AS 总学时,GradeId AS 年级 FROM Subject GROUP BY Grade...

python调用java编写的Webservice

首先我使用的是java自带的对webservice的支持包来编写的服务端和发布程序,代码如下。 webservice的接口代码: package com.xxx.test.ws; import ja...
  • dmcpxy
  • dmcpxy
  • 2014年03月10日 16:06
  • 4692
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android获取textview的行数
举报原因:
原因补充:

(最多只允许输入30个字)