1. 程式人生 > >TextView跑馬燈無效的解決辦法

TextView跑馬燈無效的解決辦法

若要讓TextView裡的文字滾動,必須滿足以下幾個因素:

1,TextView裡文字寬度超過TextView的寬度
2,android:ellipsize="marquee"
3,只有在TextView獲取到焦點時,才會滾動.所以加上android:focusableInTouchMode="true" android:focusable="true"
對於使用marquee即滾動顯示方式的,需要當前textview獲得焦點才會滾動。所以有時可能因為實際需要,textview未獲得焦點或者需要多個textview都同時滾動顯示時,可以採用以下辦法:

因為判斷textview是否處於focused狀態是通過它本身isFocused()方法,這樣只要此方法返回為true時,即認為處於focused的狀態,就可以滾動啦。

所以可以通過繼承TextView類,並override isFocused()方法來控制是否滾動咯。

最容易忽略的是第三條.

滾動重複次數設定:   android:marqueeRepeatLimit="marquee_forever"

TextView中可以設定一個ellipsize屬性,作用是當文字長度超過textview寬度時的顯示方式:

android:ellipsize=”start”—–省略號顯示在開頭 "...pedia"
android:ellipsize=”end”——省略號顯示在結尾  "encyc..."
android:ellipsize=”middle”—-省略號顯示在中間 "en...dia"
android:ellipsize=”marquee”–以橫向滾動方式顯示(需獲得當前焦點時)