android获取textview的行数
最近项目需求,需要获取Textview的行数,通过行数与TextView的maxLines进行比较来确定是否显示TextView下方的展开按钮是否显示,废话少说直接上代码,mTextView.getLineCount() ,似乎很美好,安卓有提供这个方法,但是总是返回0,这是为啥呢?官方注释如下:
/**
* Return the number of lines of text, or 0 if the internal Layout has not
* been built.
*/
也就是说只有内部的Layout创建之后才会返回正确的行数,那怎么保证layout已经构创建了呢?
最后我是这么解决的
mTextView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// TODO Auto-generated method stub
Log.e(TAG, "行数"+mTextView.getLineCount());
mTextView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
if(mTextView.getLineCount()>0){
mTextView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
}
});
当TeXtView在绘制的时候就会回调这个方法,注意当我们得到了想要的值之后注意移除GlobalOnLayoutListener避免多余的执行,而且我的项目需求是要后面通过改变textview的高度实现平滑展开的动画。附上关键代码
/**
* 折叠效果
*/
tempHight = mTextView.getLineHeight() * mTextView.getLineCount() - startHight; //计算要展开高度
tempHight = mTextView.getLineHeight() * maxLine - startHight;//为负值,收缩的高度
Animation animation = new Animation() {
//interpolatedTime 为当前动画帧对应的相对时间,值总在0-1之间
protected void applyTransformation(float interpolatedTime, Transformation t) {
mTextView.setHeight((int) (startHight + tempHight * interpolatedTime));//原始长度+高度差*(从0到1的渐变)即表现为动画效果
}
};
animation.setDuration(1000);
mTextView.startAnimation(animation);
转载于:https://www.cnblogs.com/wutianlong/p/6256540.html
android获取textview的行数相关推荐
- android textview 获得行数,android中提前获取TextView行数
一般情况下,TextView的行数要等到其布局完成后才能获取到,否则如果直接调用textView.getLineCount()函数获取到的结果只会为0,那能不能提前获取到TextView的行数呢,当然 ...
- matlab中读文件的行数_[转载]MATLAB中获取大型文本文件行数方法研究(转)
在工作中会有很多特殊的需要,比如我现在就遇到一个需要将大型的文本格式数据文件(比如5G)读取到MATLAB中,同时进行一定的处理.由于XP的内存是绝对没有办法将5G的数据一次性加载到工作空间的,此时一 ...
- 【Python茴香豆系列】之 PANDAS 获取 DataFrame 的行数
[Python茴香豆系列]之 PANDAS 获取 DataFrame 的行数 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于 ...
- Pandas 获取 Dataframe 总的行数 和 列数
Pandas 获取 DataFam 总的行数 和 列数 返回列数: df.shape[1] 返回行数: df.shape[0] 或者:len(df)
- python中获取矩阵的行数和列数
python中如何获取矩阵的行数和列数呢? 可以通过 a.shape[0] 和 a.shape[1] 来分别获取矩阵a的行数和列数,如下: import numpy as npa = np.array ...
- Android TextView 是否有省略号,动态获取和设置行数
目录 前言 一.TextView设置最大行与省略号 二.检查文本是否省略 三.实战 前言 最近在做一个效果,就是当文本显示超出2行时,文本末尾出现...(省略号),并且显示一个[展开]的按钮.点击时[ ...
- android 根据文本计算行数,ios 获取Text行数和每行显示的内容
该方法主要使用了CoreText中的内容,了解更多CoreText的内容请看CoreText系列 下面是具体代码 - (NSArray *)getLinesArrayOfStringInLabel:( ...
- TextView限制行数,点击展开显示全部
说明: TextView内容过长,现在要根据超过10行,就显示其只能显示10行,点击展开就显示全部. 代码: Activity代码: 1.处理TextView //内容处理tv_content.set ...
- Android Studio查看代码行数和删除注释空行等
在Android Studio中: 一.删除行注释 1.ctrl+r,打开替换功能.出现下图: 2.操作如图: 3.单击上图中的第4步替换之后,我示例程序中的那个黄色注释就没了,如果想要把所有行注释都 ...
- 如何获取ResultSet的行数和列数
当我们执行数据库查询返回一个ResultSet的时候,很多情况下我们需要知道这个ResultSet的大小,即它的行数和列数.我们知道它的列数可以通过resultSet.getMetaData().ge ...
最新文章
- java学习论坛汇总
- excel多个工作表求和案例
- 需求分析师与产品经理的区别
- 模拟纳指stock的小例子
- 个人觉得好的文章链接推荐【转载,侵权立删】
- haproxy+keepalived实现负载均衡及高可用
- 嵌入式CANopen协议从入门到落地产品(更新2021.9.8)
- 资源放送丨《如何从零快速搭建一整套监控体系(日志采集+主机+数据库)》PPT视频...
- QT每日一练day15:QColorDialog颜色对话框
- python 配置文件对比_Python3实现配置文件差异对比脚本
- 《jQuery Mobile入门经典》—— 2.2 展现CSS样式
- discuz uc_server 配置登录
- Django项目实战之用户头像上传与访问
- MATLAB数值计算笔记
- GCC编译全过程解析
- 【Java web】Servlet面试题
- php telnet 交换机,华为S2700交换机配置Telnet
- 旅游网-去哪儿网景点评论爬取
- Linux常见命令作用(持续更新中,欢迎提议支持)
- 信号(signal,kill,raise)
热门文章
- 3-8 堆栈模拟队列 (25 分)
- hasp运行不成功_国内首条ZA-PPV电缆成功运行50天 新电缆有啥不一样?
- 顺序堆栈实现学生信息管理系统
- 【领域适应】训练梯度反向层(gradient reversl layer, GRL)
- 指定LINUX内存大小,linux下内存大小、起始地址的解析与修改
- pyqtsignal()作用
- 卷积神经网络第三周作业 Autonomous driving application - Car detection - v1
- 卡通图像变形算法(Moving Least Squares)附源码
- 全卷积网络 FCN 详解(很好,详看)
- Python实现 N*N 乘法表