看起來是一個簡單的要求是一個相當痛苦的過程。我需要一個AppWidget來顯示一些(通常是多行)文本 - 文本的大小會有所不同,並且可能比視圖允許的時間更長,因此需要在這種情況下進行橢圓化。該視圖還將支持Android v3.1中的可調整大小的小部件,該小部件再次要求小部件能夠正確動態支持不同大小的內容。很簡單,你會想?如果這是一個單行的TextView,我認爲這將是...AppWidget中的橢圓化多行文本?
因此,最初我創建了一個單獨的TextView,設置屬性來橢圓化它,當文本不適合,並遇到the bug這意味着這不起作用 - 文字只包含兩行。
然後我用多行抓住an open source custom view that ellipsizes correctly,它工作正常,但只在一個活動。我忘記了AppWidget限制了視圖可以進入一個小部件,所以這也失敗了(「Class不允許被誇大」)。我看不到使用此自定義視圖的方法。
所以...我能想到的最好的解決方案是向窗口小部件添加一系列單行TextView,並遍歷子串,直到找到適合每一行的長度,然後再轉到下一個。即手動呈現/測量/呈現文本。這種方法有許多缺點。
是否有更好的方法將多行橢圓化文本轉換爲AppWidget?
對於Honeycomb而言,您建議的方法很好,但應用程序可以在其他設備上運行。我認爲很明顯,這裏存在一個錯誤 - 它在某些場景中省略,但不在其他場景中。我最終可能會使用透明度將最後一行淡入到背景中 - 這很醜陋,但是鑑於平臺限制,這是一個明智的解決方案。 – 2011-06-23 08:10:23
我不確定你的意思。我建議的方法是不要使用Android 3.1中引入的可調整大小的小部件功能。 – hackbod 2011-06-23 13:31:46
用戶沒有調整大小 - 小部件顯示大小不同的文本。小部件是固定大小的,內容各不相同,所以必須有某種方式來增加彈性來處理它,而不是僅僅把一個字減半。這是一個非常遺憾的框架實現不能按預期工作。 – 2011-06-24 12:28:52