1. 程式人生 > >Android字串資源 中使用空格\u0020和\u3000

Android字串資源 中使用空格\u0020和\u3000

有時候我們想實現序號左對齊,詳細條例在序號後邊左對齊,如下圖。

效果圖

這樣的效果用多個TextView很容易實現。那有沒有辦法使用一個TextView來實現呢?答案當時是可以,而且也相當容易。只需設定TextView的text為如下形式的字串資源:

其中,\n為回車,\u0020為半形空格,\u3000為全形空格,他們佔據的螢幕寬度是不一樣的,只要選擇合適的佔位符號,便可以實現許多想要的效果。

是不是很簡單?

但是,這種方法要注意某些可能踩到的坑,比如我遇到的這種情況:

多了個0?為什麼?難道是我手殘多打了一個0?仔細檢查我的程式碼,並沒有多出來的0!

經過多次驗證,把\n與1之間的空格去掉,顯示正常了。如果在\n後面加上兩個空格,只會顯示第一行……

這是什麼原因?

很遺憾,我也不知道,況且後來也沒復現過,即使加上空格也能正常顯示。如果有大神知道,還請在評論中指點,在下感激不盡!

我猜測一個可能的原因,可能是AndroidStudio編譯時記錄了字串的步長,增加空格之後,AS依然按照原來的步長讀取字串資源,就只讀取到\u002,剩下的那個0被認為在“半形空格”的範圍之外,不讀成了一個單獨的字元'0'。

因此,如果遇到這個問題,可以嘗試刪除空格,clean專案,重新編譯。