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(...
  • ltym2014
  • ltym2014
  • 2016年08月08日 09:18
  • 4286

Android textView 获取行数

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

android获取textview的行数

最近做一个需求要判断Textview的行数。那具体应该怎么做呢?直接用代码解释。 Android中有个方法是:mTextView.getLineCount() ; 看似用这个方法就可以解决,但真正...
  • qq_22157767
  • qq_22157767
  • 2017年01月03日 14:45
  • 371

Android 如何在textView里面获取行数

前言:项目需求里面有这个需求,就是当一个textView 框里的字符行数少于两行时,不显示展开查看更多按钮,当大于两行才显示。看起来很简单,直接先textView.setText("""); 然后再...
  • bianzhiguo6
  • bianzhiguo6
  • 2016年10月11日 18:25
  • 1134

TextView获取行数

textView.post(new Runnable() { @Override public void run() { ...
  • u011272454
  • u011272454
  • 2015年03月17日 14:29
  • 830

动态获取TextView内容行数

  • 2014年06月06日 15:59
  • 1KB
  • 下载

Android获取TextView的行数

TextView tv_test=(TextView)findviewbyid(u id); tv_test.post(new Runnable() { @Override public ...
  • suzhenwinform
  • suzhenwinform
  • 2013年09月26日 16:08
  • 15211

TextView设置最大行数、或者最多显示6个字、结束时为省略号

android:maxLines 设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。 android:maxEms="6" andro...
  • llixiangjian
  • llixiangjian
  • 2016年09月29日 16:56
  • 2199

android 获取textView的行数为0,获取控件的宽高为0的解决办法

一、获取textView的行数为0的解决办法 二、获取控件的宽和高为0的解决办法
  • ting1406525501
  • ting1406525501
  • 2015年09月21日 12:19
  • 554

android 计算TextView文本总行数

在Android中获取TextView文本的行数使用如下方法即可。    TextView desTV = (TextView)findViewById(R.id.des_tv); //获取des...
  • cw2004100021124
  • cw2004100021124
  • 2013年11月28日 09:18
  • 1313
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android获取textview的行数
举报原因:
原因补充:

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