国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android開發中TextView文本過長滾動顯示實現方法分析

2019-10-22 18:15:25
字體:
來源:轉載
供稿:網友

本文實例講述了Android開發中TextView文本過長滾動顯示實現方法。分享給大家供大家參考,具體如下:

項目中在使用TextView時,總會有因要顯示的內容過多而需要我們進行處理的問題。我們第一時間想到的是TextView的android:ellipsize屬性,比如 android:ellipsize="end",效果是在文字的尾部打三個小點。

但是這個屬性要配合android:singLine="true"使用。通常來說,要實現尾端三個點的省略號形式是比較容易的。

如果要求文字全部顯示,但是為了保存UI界面美觀,有限大小的TextView中如何顯示全部的超長文本呢,我們就想到了讓文本滾動顯示。

大家也想到了通過  android:ellipsize="marquee"來實現,不過我在項目中使用這個也沒有實現效果。

配合了android:singLine="true"也一樣不能實現文本滾動顯示。網上有很多解決方案,幾乎都是說到焦點問題。

比如有人建議在布局文件中的TextView添加 android:focusable="true",不過有時也是沒有效果的。

我的處理方法是,復寫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;  }}

然后把復寫的TextView當成控件寫在布局文件中,添加:

android:marqueeRepeatLimit="marquee_forever"android:ellipsize="marquee"android:singleLine="true"

等屬性,當然不要忘記寫width,height等必備屬性哦。

最后在使用該TextView的時候,還要添加一句:

MarqueTextView tv=(MarqueTextView)findViewById(R.id.my_text_view);tv.setSelected(true);

滾動效果就有了。

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 廉江市| 乌鲁木齐县| 乳源| 久治县| 清镇市| 华容县| 卢湾区| 保山市| 平陆县| 博白县| 宣汉县| 囊谦县| 门源| 循化| 锡林郭勒盟| 永春县| 阳信县| 宁乡县| 六枝特区| 富平县| 云霄县| 汉中市| 阳高县| 沙洋县| 兴安县| 福贡县| 祥云县| 定边县| 平果县| 甘南县| 阜康市| 尼木县| 平度市| 三穗县| 泰州市| 汉寿县| 万安县| 仁寿县| 岑巩县| 岑巩县|