zoukankan      html  css  js  c++  java
  • Android TextView内容过长加省略号,点击显示全部内容

    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。
    文字展开和收缩

    [java] view plain copy
     
    1. public class DemoActivity extends BaseActivity {   
    2. @Override   
    3.       protected void onCreate(Bundle savedInstanceState) {    
    4.            super.onCreate(savedInstanceState);    
    5.            setContentView(R.layout.main);      
    6.            // 在xml文件中设置了android:singleline="true"   
    7.            final TextView tv = (TextView)findViewById(R.id.task_2_title);   
    8.            //tv.setMovementMethod(ScrollingMovementMethod.getInstance());   
    9.            tv.setOnClickListener(new OnClickListener() {      
    10.                  Boolean flag = true;     
    11.                  @Override     
    12.                  public void onClick(View v) {      
    13.                         Log.i("tv.getLineCount()",tv.getHeight()+"");      
    14.                         if(flag){           
    15.                               flag = false;       
    16.                               tv.setEllipsize(null); // 展开       
    17.                               //tv.setSingleLine(flag);      
    18.                         }else{       
    19.                               flag = true;       
    20.                               tv.setEllipsize(TextUtils.TruncateAt.END); // 收缩       
    21.                               //tv.setSingleLine(flag);      
    22.                         }     
    23.                  }    
    24.           });   
    25.      }  
    26. }  


    其实,只是把样式清空而已。就能完全展开了。有人可能要说,万一我想初始几行呢?放心,一样可以。上代码:在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”这个固定值

  • 相关阅读:
    SSLOJ 1298.网站计划
    SSLOJ 1297.GF打Dota
    SSLOJ 1296.猫咪的进化
    脚本1)启动jetty的脚本
    mysql的常用命令
    mysql异常com.mysql.jdbc.PacketTooBigException
    debian apt-get联网安装mysql服务
    mysql 解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored
    ubuntu/debian/linux彻底卸载mysql
    Ubuntu12.04_X64 apt-get install 报错404
  • 原文地址:https://www.cnblogs.com/simadi/p/6845415.html
Copyright © 2011-2022 走看看