【第22期】观点:IT 行业加班,到底有没有价值?

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的长度

如果用testSize设置汉字的大小,其值用像素表示。用 屏幕宽度的像素/汉字宽度像素就得到了所能显示文字的长度,如果出现字母和特殊符号的时候,这样计算字符串长度就不准确了。 可用下面办法获取长度:...

如何获取TextView中每个字符的长度

public float getCharacterWidth(TextView tv) { if (null == tv) return 0f; return getCharacterWidth...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

Android 获取textView高度的N种方式

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

android获取字符串的长度

需求是这样的:我想要动态的获取一个textview上文字的长度,因为我的文字有好多种语言,每种语言的长度不一样,导致显示的不是很好,我喜欢根据textview的长度动态设置。 1)最开始发现了这个...

android获取 TextView 中的可见字数

分页功能是阅读器类软件的基本功能之一, 也是自己之前写阅读器时遇到的第一个问题. 尝试了不少办法才解决, 现在把其中最容易实现的一个方法记录下来, 也方便大家参考. 基本思路如下: 从文件...

Android中获取TextView的值

昨日写一个Android Demo,逻辑大概是从TextView获取其中的值,然后处理后再放回TextView中。整个处理过程是由一个Button的OnClick触发的。 可是在调试的过程中,一点击...

android TextView 如何动态获取宽度

1.当TextView的属性是wrap_content时,如何获取其宽度,特别是在界面还没显示时,比如像在RecycleView中的情况? TextView tv_name = findViewB...

【Android】如何获取TextView的控件宽度以及字体宽度

作者:Yogi前言:当在界面观察时,明明看到TextView上的字体已经超出显示范围,却不发生自滚动。但是,你看到它超出,不一定真的超出哦。此篇文章告诉你,如何看实实在在的TextView的显示范围以...

Android textView 获取行数

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

Android中获取TextView行数

Android 获取TextView行数 项目中发现,如果直接通过TextView.getLineCount()方法获取行数时,总是0,研究发现,setText()后立即调用getLineCount(...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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