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。
    文字展开和收缩
    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”这个固定值

  • 相关阅读:
    PHP 5.5.0 Alpha5 发布
    Ubuntu Touch 只是另一个 Android 皮肤?
    MariaDB 10 已经为动态列提供文档说明
    Percona Toolkit 2.1.9 发布,MySQL 管理工具
    Oracle Linux 6.4 发布
    Ruby 2.0.0 首个稳定版本(p0)发布
    Apache Pig 0.11.0 发布,大规模数据分析
    Node.js 0.8.21 稳定版发布
    红薯 MySQL 5.5 和 5.6 默认参数值的差异
    Django 1.5 正式版发布,支持 Python 3
  • 原文地址:https://www.cnblogs.com/clarence/p/3753339.html
Copyright © 2011-2022 走看看