博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android TextView内容过长加省略号,点击显示全部内容
阅读量:4356 次
发布时间:2019-06-07

本文共 2571 字,大约阅读时间需要 8 分钟。

在 TextView中有个内容过长加省略号的属性,即ellipsize,用法如下:

在xml中:

android:ellipsize="end"     省略号在结尾android:ellipsize="start"   省略号在开头android:ellipsize="middle"   省略号在中间android:ellipsize="marquee"  跑马灯

最好加一个TextView显示行数的约束,例如:android:singleline="true"或者android:lines="2"

在java文件中:

tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));

最好加一个TextView显示行数的约束,例如:tv.setSingleLine(true);

不仅对于textview有此属性,对于editext也有,不过它不支持marquee。
文字展开和收缩

Android TextView内容过长加省略号,点击显示全部内容     2013-03-29 10:03:36     我来说两句       作者:维王    收藏    我要投稿     在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下:    在xml中:    android:ellipsize="end"     省略号在结尾    android:ellipsize="start"   省略号在开头    android:ellipsize="middle"   省略号在中间    android:ellipsize="marquee"  跑马灯    最好加一个TextView显示行数的约束,例如:android:singleline="true"或者android:lines="2"    在java文件中:    tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));    tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));    tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));    tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));    最好加一个TextView显示行数的约束,例如:tv.setSingleLine(true);    不仅对于textview有此属性,对于editext也有,不过它不支持marquee。    文字展开和收缩    public class DemoActivity extends BaseActivity {     @Override     protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.main);    // 在xml文件中设置了android:singleline="true"      final TextView tv = (TextView)findViewById(R.id.task_2_title);      //tv.setMovementMethod(ScrollingMovementMethod.getInstance());      tv.setOnClickListener(new OnClickListener() {        Boolean flag = true;       @Override       public void onClick(View v) {        Log.i("tv.getLineCount()",tv.getHeight()+"");        if(flag){                 flag = false;         tv.setEllipsize(null); // 展开         //tv.setSingleLine(flag);        }else{         flag = true;         tv.setEllipsize(TextUtils.TruncateAt.END); // 收缩         //tv.setSingleLine(flag);        }       }      });     }    }

其实,只是把样式清空而已。就能完全展开了。有人可能要说,万一我想初始几行呢?放心,一样可以。上代码:在xml文件中设置了如下属性:android:lines="4"      //我初始化的4行  Activity那边代码一样,只改一点

if(flag){        flag = false;         tv.setEllipsize(null); // 展开         tv.setSingleLine(flag);        }else{          flag = true;          tv.setEllipsize(TextUtils.TruncateAt.END); // 收缩    }

设置setSingleLine的目的是为了取消lines==“4”这个固定值

转载于:https://www.cnblogs.com/zhujiabin/p/4252302.html

你可能感兴趣的文章
每天一个Linux命令(16)--which命令
查看>>
libevent文档学习(一)多线程接口和使用
查看>>
【补hackbar的坑】关于hackbar需要钱的补救措施
查看>>
纤程与Quasar
查看>>
MySQL的一个麻烦事
查看>>
Uri、URL和URN三者的区别
查看>>
数据字典的转换
查看>>
二维数组按照指定的字段排序的函数
查看>>
在IAR下通过Jlink将程序直接下载到Flash指定地址
查看>>
POJ2560-雀斑(Freckles)【图论,并查集,最小生成树,KURUSKAL】
查看>>
[Angular] Tree shakable provider
查看>>
[Vue + TS] Use Dependency Injection in Vue Using @Inject and @Provide Decorators with TypeScript
查看>>
[Angular 2] Select From Multiple Nested Angular 2 Elements
查看>>
C# 中的委托和事件[转帖]
查看>>
图的遍历(bfs+dfs)模板
查看>>
angular service 进行组件通信
查看>>
linux安装Mac的默认Monaco字体
查看>>
java语言的特点
查看>>
关于动态添加iview admin路由以及刷新侧边栏
查看>>
ApplicationInsights的探测器尝鲜
查看>>