Android TextView內容過長加省略符號,點擊顯示全部內容

來源:互聯網
上載者:User

標籤:android   blog   http   java   檔案   ar   art   cti   

在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”這個固定值。

 

參考:http://blog.csdn.net/wwzqj/article/details/8731859

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.