1. 程式人生 > >Android TextView與EditText超過限制長度顯示省略號

Android TextView與EditText超過限制長度顯示省略號

TextView和EditView超過限制長度顯示省略號,TextView設定單行並且設定maxLength,超過的部分就會顯示省略號,但是EditView設定單行和maxLength超出部分會發生截斷,並不顯示省略號,經測試發現設定單行和maxLength只會對editView的hint產生省略號的效果.那麼這個問題怎麼解決呢?

產品現在又要求超過給定長度,顯示省略號,且省略號要文字的底部,如省略號...,正常情況下,我們知道省略號一般是在文字的中部展示,這個問題又怎麼解決呢?

下面給出程式碼:

public static CharSequence ellipsize(String text, EditText editText, int maxLength) {
    CharSequence charSeq = "";
    if (!TextUtils.isEmpty(text)) {
        charSeq = TextUtils.ellipsize(text, editText.getPaint(), maxLength, TextUtils.TruncateAt.END);
        charSeq = TextUtils.replace(charSeq, new String[]{"\u2026"}, new String[]{"..."});
    }
    return charSeq;
}

說明:

1.引數editText可以換成TextView,EditView是TextView的子類

2.charSeq = TextUtils.ellipsize(text, editText.getPaint(), maxLength, TextUtils.TruncateAt.END); 可以實現省略號在文字中部顯示,editView在文字中部顯示省略號可以用這種方法

3.charSeq = TextUtils.replace(charSeq, new String[]{"\u2026"}, new String[]{"..."}); 可以實現省略號...

\u2026表示省略號,是Unicode的16進製表示,上面的意思是將"\u2026"代表的省略號用"..."代替,這樣charSeq就是一個末尾是...的字串了

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

這裡再記錄下:

\u0020的意思是表示空格,是unicode的16進製表示     

在XML中寫字串時,可能需要在字串後面加空格,A_B(中間有空格的情況)是沒有問題,用不到轉義字元;
     但 是AB_ (後面有空格的)時候,就需要轉個義。XML轉義字元 ,\u0020寫xml string的時候可能會用到 。

    <string name="nameAAAA">Value\u0020;</string>

參考部落格:

相關推薦

Android TextViewEditText超過限制長度顯示省略號

TextView和EditView超過限制長度顯示省略號,TextView設定單行並且設定maxLength,超過的部分就會顯示省略號,但是EditView設定單行和maxLength超出部分會發生截斷,並不顯示省略號,經測試發現設定單行和maxLength只會對editVi

Android TextView 判斷文字內容是否超出顯示省略號

TextView 判斷文字內容是否超出顯示省略號 最近在做一個類似於QQ空間的一個社交圈的模組的開發。有一個需求是當用戶發表的內容超出4行時,顯示一個按鈕,點選按鈕展示全文。我還真沒有發現TextView有獲取文字內容有沒有顯示省略號這個方法。沒辦法,只能

常用控制元件01 TextViewEditTextAndroid簡單計算器

事件監聽(三種寫法) 1.1 標籤上直接繫結監聽方法 public void xxx(View view) 1.2 建立監聽器物件,元件再繫結監聽器物件 1.2.1 匿名內部類 1.2.2 使用匿名內部類並定義成全域性的屬性 1 2. 文字框(TextVie

android TextViewEditText顯示圖片

/** * 帶有\n換行符的字串都可以用此方法顯示2種顏色 * @param text * @param color1 * @param color2 * @return */ public SpannableStr

控制元件TextViewEditText的簡單運用

文字框(TextView) 簡介 TextView直接繼承View,作用就是在介面上顯示文字(類似於Swing中的JLabel),同時它還是EditText、Button兩個UI元件類的父類。 另外Android關閉了它的文字編輯功能,如果想編輯內容,則可以使用EditText。

vue 在IE瀏覽器路由攜帶引數超過限制長度怎麼解決

最近在做IE瀏覽器相容的時候,發現從前一個頁面帶的引數過多的話,在IE瀏覽器裡面,是不能正常跳轉到下一個頁面的。 原因是IE瀏覽器對路由的限制長度為2kb。 解決: 路由傳參時放棄get方式,採用post傳參的方式。 post方式 頁面跳轉 //由於動態路由也是

文字控制元件:TextViewEditText

TextView與EditText屬性大全: android:autoLink設定是否當文字為URL連結/email/電話號碼/map時,文字顯示為可點選的連結。可選值(none/web/email/phone/map/all)  android:autoText如果設定,

android TextView類setText()方法顯示數字

當讓一個textview物件顯示的內容為數字時,要注意不要直接把int型別作為引數直接帶入方法,因為textview類有過載方法setText(int resid),將int作為引數的方法實際上是另一個方法,該方法把引數作為string資源的id去獲取string資源。 顯

css公共庫——簡介中超過長度顯示省略號

省略號 長度 .com psi 標簽 inf code 顯示 ace 在簡介、引言中常見:文字只有一排,超出寬度以省略號顯示,像這樣 實現方法:在公共庫定義otw類 .otw{ overflow: hidden; text-overflow:

內容超過寬度後顯示省略號

dem mage 分享 span log borde clas text 美麗 <div class="demo">讓我們蕩起雙槳,小船兒推開波浪,海面倒映著美麗的白塔,四周環繞著綠樹紅墻!</div> <style>

用css實現文本不換行切超出限制顯示省略號(小tips)

max 省略號 over 顯示 寬度 width code wid ellipsis div{ max-width: 500px; text-overflow: ellipsis; overflow: hidden; white-spac

文字超過一定長度省略號處理總結

div log nbsp 解決 com psi AC tex 並且 1.文字在一行之內: 容器設置如下css樣式 overflow: hidden; white-space: nowrap; text-overflow: ellipsis

單行多行文字溢位顯示省略號

需設定寬度才能溢位顯示省略號。 單行文字: .am-text-truncate { word-wrap: normal; /* for IE */ text-overflow: el

android:TextView單行顯示設定字元長度超過後面為省略號

在 TextView 中加入:     (注意:layout_width="wrap_content",寬度必須是wrap_content,為match_parent無效)     android:maxEms="10"   //限制位元組長度為10     andro

Android EditText輸入限制最大字元長度限制只能輸入數字和字母(包含大小寫)

          如題:Android EditText輸入限制最大字元長度  和 限制只能輸入數字和字母(包含大小寫),主要是如下兩個屬性:             android:maxLength="10"             android:digits="0

Android EditText裡的密碼顯示可見不可見

剛開始我是修改EditText的inputType,這個就是EditText的輸入模式。我之前也是想修改這個inputType的,這個在xml裡面修改可以,程式碼是這樣的:android:inpu

android設定textview限制字數以省略號顯示的方法

<TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content"

方法數超過限制,Google官方解決方案連結:https://developer.android.com/studio/build/multidex.html

方法數超過限制,Google官方解決方案連結:https://developer.android.com/studio/build/multidex.html 對了,如果參考第三種方案,發現 Multidex.install(this); 這一行程式碼總是報錯,嘗試用這行程式碼: Mu

AndroidTextView內容過長未顯示省略號的問題

問題描述: 按照UI設計,某個頁面展示資料超長時,需要顯示出省略號。 預期展示(有省略號): 實際展示(無省略號): 具體程式碼: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr

android 給editview設定輸入限制(比如不能輸入表情),還有長度限制

mTitleEt.setFilters(new InputFilter[]{FilterUtil.getInputFilter(context, getString(R.string.filter_default), FilterUtil.MATCHER_DEFAULT),new I