本文實例講述了Android開發(fā)中TextView文本過長滾動顯示實現(xiàn)方法。分享給大家供大家參考,具體如下:
成都創(chuàng)新互聯(lián)成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點,以客戶需求中心、市場為導(dǎo)向”的快速反應(yīng)體系。對公司的主營項目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計、行業(yè) / 企業(yè)門戶設(shè)計推廣、行業(yè)門戶平臺運營、成都app軟件開發(fā)公司、移動網(wǎng)站建設(shè)、微信網(wǎng)站制作、軟件開發(fā)、雅安服務(wù)器托管等實行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從成都創(chuàng)新互聯(lián)可以獲得的服務(wù)效果。
項目中在使用TextView時,總會有因要顯示的內(nèi)容過多而需要我們進行處理的問題。我們第一時間想到的是TextView的android:ellipsize
屬性,比如 android:ellipsize="end"
,效果是在文字的尾部打三個小點。
但是這個屬性要配合android:singLine="true"使用。通常來說,要實現(xiàn)尾端三個點的省略號形式是比較容易的。
如果要求文字全部顯示,但是為了保存UI界面美觀,有限大小的TextView中如何顯示全部的超長文本呢,我們就想到了讓文本滾動顯示。
大家也想到了通過 android:ellipsize="marquee"
來實現(xiàn),不過我在項目中使用這個也沒有實現(xiàn)效果。
配合了android:singLine="true"
也一樣不能實現(xiàn)文本滾動顯示。網(wǎng)上有很多解決方案,幾乎都是說到焦點問題。
比如有人建議在布局文件中的TextView添加 android:focusable="true"
,不過有時也是沒有效果的。
我的處理方法是,復(fù)寫TextView,只要簡單地改一個代碼即可:
public class MarqueTextView extends TextView { public MarqueTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public MarqueTextView(Context context, AttributeSet attrs) { super(context, attrs); } public MarqueTextView(Context context) { super(context); } @Override public boolean isFocused() { //就是把這里返回true即可 return true; } }
然后把復(fù)寫的TextView當(dāng)成控件寫在布局文件中,添加:
android:marqueeRepeatLimit="marquee_forever" android:ellipsize="marquee" android:singleLine="true"
等屬性,當(dāng)然不要忘記寫width,height等必備屬性哦。
最后在使用該TextView的時候,還要添加一句:
MarqueTextView tv=(MarqueTextView)findViewById(R.id.my_text_view); tv.setSelected(true);
滾動效果就有了。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。