Android開(kāi)發(fā)中TextView文本過(guò)長(zhǎng)滾動(dòng)顯示實(shí)現(xiàn)方法分析
本文實(shí)例講述了Android開(kāi)發(fā)中TextView文本過(guò)長(zhǎng)滾動(dòng)顯示實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
項(xiàng)目中在使用TextView時(shí),總會(huì)有因要顯示的內(nèi)容過(guò)多而需要我們進(jìn)行處理的問(wèn)題。我們第一時(shí)間想到的是TextView的android:ellipsize
屬性,比如 android:ellipsize="end"
,效果是在文字的尾部打三個(gè)小點(diǎn)。
但是這個(gè)屬性要配合android:singLine="true"使用。通常來(lái)說(shuō),要實(shí)現(xiàn)尾端三個(gè)點(diǎn)的省略號(hào)形式是比較容易的。
如果要求文字全部顯示,但是為了保存UI界面美觀(guān),有限大小的TextView中如何顯示全部的超長(zhǎng)文本呢,我們就想到了讓文本滾動(dòng)顯示。
大家也想到了通過(guò) android:ellipsize="marquee"
來(lái)實(shí)現(xiàn),不過(guò)我在項(xiàng)目中使用這個(gè)也沒(méi)有實(shí)現(xiàn)效果。
配合了android:singLine="true"
也一樣不能實(shí)現(xiàn)文本滾動(dòng)顯示。網(wǎng)上有很多解決方案,幾乎都是說(shuō)到焦點(diǎn)問(wèn)題。
比如有人建議在布局文件中的TextView添加 android:focusable="true"
,不過(guò)有時(shí)也是沒(méi)有效果的。
我的處理方法是,復(fù)寫(xiě)TextView,只要簡(jiǎn)單地改一個(gè)代碼即可:
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ù)寫(xiě)的TextView當(dāng)成控件寫(xiě)在布局文件中,添加:
android:marqueeRepeatLimit="marquee_forever" android:ellipsize="marquee" android:singleLine="true"
等屬性,當(dāng)然不要忘記寫(xiě)width,height等必備屬性哦。
最后在使用該TextView的時(shí)候,還要添加一句:
MarqueTextView tv=(MarqueTextView)findViewById(R.id.my_text_view); tv.setSelected(true);
滾動(dòng)效果就有了。
更多關(guān)于A(yíng)ndroid相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
android圖像繪制(五)畫(huà)布保存為指定格式/大小的圖片
將圖片進(jìn)行編輯(放縮,涂鴉等),最后保存成指定格式、大小的圖片,接下來(lái)將介紹保存方法,感興趣的朋友可以了解下啊2013-01-01Android 實(shí)現(xiàn)電話(huà)攔截及攔截提示音功能的開(kāi)發(fā)
本文主要介紹Android 實(shí)現(xiàn)電話(huà)攔截和攔截提示音功能的開(kāi)發(fā),這里提供實(shí)現(xiàn)代碼和詳細(xì)講解,有需要的小伙伴可以參考下2016-08-08Android應(yīng)用程序轉(zhuǎn)到后臺(tái)并回到前臺(tái)判斷方法
這篇文章主要介紹了Android應(yīng)用程序轉(zhuǎn)到后臺(tái)并回到前臺(tái)判斷方法的相關(guān)資料,需要的朋友可以參考下2016-11-11Android中自定義ImageView添加文字設(shè)置按下效果詳解
這篇文章主要給大家介紹了關(guān)于A(yíng)ndroid中自定義ImageView添加文字設(shè)置按下效果的相關(guān)資料,實(shí)現(xiàn)后的效果非常利用用戶(hù)的體驗(yàn),文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)下吧。2017-08-08Android實(shí)現(xiàn)bitmap指定區(qū)域滑動(dòng)截取功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)bitmap指定區(qū)域滑動(dòng)截取功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09Android模擬用戶(hù)點(diǎn)擊的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于A(yíng)ndroid模擬用戶(hù)點(diǎn)擊的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)學(xué)習(xí)學(xué)習(xí)吧。2018-02-02Compose自定義View實(shí)現(xiàn)宇智波斑寫(xiě)輪眼
這篇文章主要為大家介紹了Compose自定義View實(shí)現(xiàn)宇智波斑寫(xiě)輪眼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02