showName.length > 3 ? (showName).substring(0, 3) + "..." : showName
正常,我們會這樣子寫分割字符串,但是在flutter端,如果遇到了emoji表情,則會出現問題。emoji表情會導致無法正確計算出showName的長度,分割后在Text上顯示就會報錯了。
正確的分割方式:
static String maxLength(String str, int len) { // 刪除emoji表情 var sRunes = str.runes; return sRunes.length > len ? String.fromCharCodes(sRunes, 0, sRunes.length - len) +"...":str; }