[關鍵字] Android / TextView / Marquee / setSelected / focusable / focusableInTouchMode / not working / multiple
這是一個很簡單好用的功能,就是將 TextView 轉變為跑馬燈。
但是當中有一些值得注意的地方,是我花了一些時間研究的。
特別寫來與大家分享一下。
首先,當我們只有一個 TextView 需要當跑馬燈的時候,
可以很輕易地讓它動起來:
但是當我們想要用同樣的方式加入第二個跑馬燈:
卻發生這樣的窘境:
原因是,TextView要成為跑馬燈,必須要在Focus的狀態下,
這是Android本身的規則。而一個畫面裡面,只能有一個Focus,
所以被第一個搶走了,第二個就無法正常作用。
解決的方法是:
將這個 TextView 設定為 selected(已選取),一樣有Focus的效果,
就可以順利的動作了:
我要特別說明的是,我自己遇到的狀況是,
我還有其它的 ListView、GridView 在同一個畫面裡,
所以Focus會被它們搶走。因此我特別建議就算是只用一個
跑馬燈TextView,也如法炮製在程式碼上加setSelected(true):
使用 Android 原生的 TextView,有個很大的缺點,
就是無法控制速度,所以有興趣的話,可以看以下兩篇深入研究:
全站熱搜
留言列表