Android TextView内容过长加省略号,点击显示全部内容

转载 2015年07月08日 19:46:24

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”这个固定值


多行文本溢出显示省略号(…)全攻略

小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货。各大应用市场搜索「掘金」即可下载APP,技术干货尽在掌...
  • yzbben
  • yzbben
  • 2016-10-31 12:08:56
  • 467

初步学习 ionic css 布局

css ,html, ionic,
  • ling369523246
  • ling369523246
  • 2016-05-30 11:15:23
  • 1474

设置多行文本超出显示省略号,在手机端超出部分无法隐藏解决方法

方法一: 跨浏览器兼容的方案 比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现; p { position:relative; line-height:1.4...
  • qq_34645412
  • qq_34645412
  • 2017-12-02 11:38:29
  • 528

css限制显示字数,文字长度超出部分用省略号表示

为了保证页面的美观整洁,在文字太多的时候,我们常需要隐藏超出长度的文字。在题目,名称,列表条目等地方常用到。 (1).html中文字超出一行,省略超出部分,显示'...' 如果这种情况比较多,可以取一...
  • OrangeJuiceMe
  • OrangeJuiceMe
  • 2016-03-09 19:18:04
  • 29783

Android之TextView实现文字过长时省略部分或者滚动显示

  • 2012年11月09日 16:50
  • 3KB
  • 下载

TexView 设置最大字数 超过部分显示省略号

设置TextView的singleLine=”true” 和ellipsize=”end” 属性 ,然后设置指定最大的字数就可以实现...
  • lovemark8
  • lovemark8
  • 2015-07-14 15:44:13
  • 905

TextView 设置显示省略号

限制TextView显示的字符数,多出的部分显示省略号。 效果图如下: 自定义EllipsizingTextView.java,(com.example.user.helloworld.Ell...
  • hxltech
  • hxltech
  • 2016-07-29 14:29:46
  • 2045

android中textview中文字显示过长、使其用省略号代替,点击显示全部

tv_name.setOnClickListener(new OnClickListener() { Boolean flag = true; @Override publi...
  • u012386435
  • u012386435
  • 2016-04-22 11:08:45
  • 1932

textview最多显示3行点击事件展开显示全部

给textview设置一个默认值,让其最多显示三行,当点击按钮的时候全部展开显示, tv_person_jieshao_more.setOnClickListener(new OnClickLis...
  • languobeibei
  • languobeibei
  • 2016-12-13 15:03:26
  • 2700

Android 打造任意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:【张鸿洋的博客】1、概述大家在项目中或多或少的可能会见到...
  • lmj623565791
  • lmj623565791
  • 2014-10-20 09:28:12
  • 94684
收藏助手
不良信息举报
您举报文章:Android TextView内容过长加省略号,点击显示全部内容
举报原因:
原因补充:

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