android获取textview的行数
16lz
2021-01-23
最近做一个需求要判断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 SDK23以上(包括23)无法使用httpclient的处理方法
- android 属性android:visibility及 view的setVisibility方法值的
- Android中使用animation的方法
- Android禁止EditText自动弹出软键盘的方法及遇到问题
- Android 获取未读短信同时,一并获取该短信内容的方法
- Android Studio中获取SHA1或MD5的方法
- [转]JS调用Android里面的方法,Android调用JS里面的方法